中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網頁設計與制作教程西北工業(yè)大學廣州網站優(yōu)化步驟

網頁設計與制作教程西北工業(yè)大學,廣州網站優(yōu)化步驟,蘇州專業(yè)做網站公司電話,景安網站備案要多久題目部分 題目矩陣最大值難度難題目說明給定一個僅包含 0 和 1 的 N*N 二維矩陣,請計算二維矩陣的最大值,計算規(guī)則如下: 1. 每行元素按下標順序組成一個二進制數(下標越大越排在低位),二進制數的值就是該行…

題目部分

題目矩陣最大值
難度
題目說明給定一個僅包含 0 和 1 的 N*N 二維矩陣,請計算二維矩陣的最大值,計算規(guī)則如下:
1. 每行元素按下標順序組成一個二進制數(下標越大越排在低位),二進制數的值就是該行的值。矩陣各行值之和為矩陣的值。
2. 允許通過向左或向右整體循環(huán)移動每行元素來改變各元素在行中的位置。
比如: [1,0,1,1,1] 向右整體循環(huán)移動 2 位變?yōu)?[1,1,1,0,1],二進制數為 11101,值為 29。
[1,0,1,1,1] 向左整體循環(huán)移動 2 位變?yōu)?[1,1,1,1,0],二進制數為 11110,值為 30。
輸入描述1. 輸入的第一行為正整數,記錄了 N 的大小,0 < N <= 20。
2. 輸入的第 2 到 N+1 行為二維矩陣信息,行內元素邊角逗號分隔。
輸出描述矩陣各行之和的最大值。
補充說明
------------------------------------------------------
示例
示例1
輸入5
1,0,0,0,1
0,0,0,1,1
0,1,0,1,0
1,0,0,1,1
1,0,1,0,1
輸出122
說明第一行向右整體循環(huán)移動 1 位,得到本行的最大值 [1,1,0,0,0],二進制值為 11000,十進制值為 24。
第二行向右整體循環(huán)移動 2 位,得到本行的最大值 [1,1,0,0,0],二進制值為 11000,十進制值為 24。
第三行向左整體循環(huán)移動 1 位,得到本行的最大值 [1,0,1,0,0],二進制值為 10100,十進制值為 20。
第四行向右整體循環(huán)移動 2 位,得到本行的最大值 [1,1,1,0,0],二進制值為 11100,十進制值為 28。
第五行向右整體循環(huán)移動 1 位,得到本行的最大值 [1,1,0,1,0],二進制值為 11010,十進制值為 26。
因此,矩陣的最大值為 122。


解讀與分析

題目解讀

矩陣的每一行為一個二進制數字,通過左右移動,得到最大的二進制數。輸出所有最大二進制數之和。

分析與思路

1. 解析輸入矩陣的每一行,并轉換成對應的 10 進制數字;
2. 每一行的二進制數字每向右移動一位,相當于把這個數字(第一步中解析的數字,設為 value) 除以 2(取整),設為 valuePart1;然后再把?value % 2 的值(設為 modValue),乘以?2^{N-1},設為 valuePart2,計算 valuePart1 與 valuePart2 之和即為向右移動一位之后的結果。
3. 在第 2 步獲取的數字的基礎上,繼續(xù)右移。對于一個 N 位的二進制,向右移動 N 位之后就會回到初始值。因而,移動 (N -1) 次求出這 N 個數中的最大值即可。

4. 然后對每一行的最大值求和,并輸出。

時間復雜度為 O(n^{2}),空間復雜度為 O(n)。


代碼實現

Java代碼

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;/*** 支持優(yōu)先級的隊列* * @since 2023.10.26* @version 0.1* @author Frank**/
public class MatrixMaxValue {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String input = sc.nextLine();int count = Integer.parseInt( input );int maxValue = 0;for( int i = 0; i < count; i ++ ){input = sc.nextLine();maxValue += getMaxValueEachLine( count, input );}System.out.println( maxValue );}}private static int getMaxValueEachLine( int count, String input ){int sourceValue = parseStringValue( input );int maxValue = sourceValue;int curValue = sourceValue;// 右移 n - 1 次,求最大值for( int i = 0; i < count - 1; i ++ ){	   int partValue1 = curValue / 2;int partValue2 = (int) Math.round ( ( curValue % 2 ) * Math.pow( 2 , count - 1) );  // 使用round避免誤差,不會越界curValue = partValue1 + partValue2;if( curValue > maxValue ){maxValue = curValue;}}return maxValue;}private static int parseStringValue( String input ){int ret = 0;String[] binaryArr = input.split( "," );for( int i = 0; i < binaryArr.length; i ++ ){ret *= 2;ret += Integer.parseInt( binaryArr[i] );}return ret;}
}

在以上 Java 代碼中,Math.pow() 函數返回的是浮點數,為了避免浮點數計算時出現誤差(大概率應該不會出現誤差),為了保證程序的正確性,最后使用了?Math.round() 函數。
Math.round() 返回 long 型數字,為了避免數據類型不匹配,使用強制數據類型轉換。因為 N 的最大值是 20,最大值?2^{20} - 1,比?10^{6}?稍大,此時不會越界。

JavaScript代碼

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function() {while (line = await readline()) {var count = parseInt( line );var maxValue = 0;for (var i = 0; i < count; i++) {line = await readline()maxValue += getMaxValueEachLine(count, line );}console.log(maxValue);}
}();function getMaxValueEachLine(count, input) {var sourceValue = parseStringValue(input);var maxValue = sourceValue;var curValue = sourceValue;// 右移 n - 1 次,求最大值for (var i = 0; i < count - 1; i++) {var partValue1 = parseInt( curValue / 2 );var partValue2 = Math.round((curValue % 2) * Math.pow(2, count - 1)); // 使用round,避免誤差,不會越界curValue = partValue1 + partValue2;if (curValue > maxValue) {maxValue = curValue;}}return maxValue;
}function parseStringValue(input) {var ret = 0;var binaryArr = input.split(",");for (var i = 0; i < binaryArr.length; i++) {ret *= 2;ret += parseInt(binaryArr[i]);}return ret;
}

(完)

http://www.risenshineclean.com/news/30679.html

相關文章:

  • 如何做高大上的網站 知乎企業(yè)營銷網站建設系統(tǒng)
  • 企業(yè)網站ppt怎么做百度搜索資源平臺官網
  • 如何做搜索引擎網站百度網站怎么提升排名
  • 什么是網站維護中營銷運營主要做什么
  • 互聯網行業(yè)分為哪幾類排名優(yōu)化方法
  • 提交網站汕頭seo推廣
  • 微信公眾號平臺網站開發(fā)百度天眼查公司
  • 用ps怎樣做網站文字logo廣豐網站seo
  • 個人怎么做貸款網站求購買鏈接
  • 網站權重高+做別的關鍵詞百度應用下載安裝
  • 學做效果圖網站有哪些軟件有哪些網站建站方式有哪些
  • 有沒有做數學題掙錢的網站艾滋病多久可以查出來
  • 網站建設網站軟件有哪些方面深圳網站建設公司
  • 湖南住房和城鄉(xiāng)建設廳網站首頁優(yōu)化網站怎么真實點擊
  • 男女做a視頻網站seo1搬到哪里去了
  • wordpress 網站日志天門seo
  • 福建省住建廳建設網站競價培訓班
  • 手機網站開發(fā)學習免費單頁網站在線制作
  • 可以用足球做的游戲視頻網站好的競價賬戶托管外包
  • 常規(guī)做網站要在工信部認證嗎網站建立
  • 適合個人做的網站有哪些東西嗎百度權重批量查詢
  • 英語機構網站建設方案足球進球排行榜
  • 做網站的困難windows優(yōu)化大師會員兌換碼
  • 做網站學什么專業(yè)防惡意點擊軟件
  • 南寧網站建設設計制作今日最新抗疫數據
  • 做代購有哪些網站有哪些seo優(yōu)化培訓課程
  • 做聊天網站的視頻教程怎么進行網站關鍵詞優(yōu)化
  • wordpress主題如何修改seo優(yōu)化設計
  • 做網站需要注意的點抖音seo供應商
  • 山西成寧做的網站運營推廣渠道有哪些