日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codeforces Gargari and Bishops(很好的暴力)

發布時間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codeforces Gargari and Bishops(很好的暴力) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 /* 2 題意:給你一個n*n的格子,每一個格子都有一個數值!將兩只bishops放在某一個格子上, 3 每一個bishop可以攻擊對角線上的格子(主對角線和者斜對角線),然后會獲得格子上的 4 數值(只能獲取一次)。要求輸出兩個bishops獲取的最大值以及它們所在的位置! 5 6 7 思路:直接暴力!....不錯的暴力題目! 8 首先我們都知道每一條主對角線上的橫縱坐標的和相同,每一條副對角線上的橫縱坐標的差相同! 9 那么我們在輸入的時候就可以將所有對角線上的數值之和求出來了! 10 11 最后我們發現如果要獲得最大值,那么還有一條就是兩個bishops所在的對角線不能相交在 12 同一個格子上!只要滿足兩個bishops的哼縱坐標之和互為奇偶就可以了! 13 14 在所有格子中找到橫縱坐標之和為奇數并且獲得對角線上數值最大的格子和橫縱坐標之 15 和為偶數并且獲得對角線上數值最大的格子! 16 二者最大獲得值相加就是最終的答案了! 17 */ 18 #include<iostream> 19 #include<cstring> 20 #include<cstdio> 21 #include<algorithm> 22 #define N 2005 23 using namespace std; 24 typedef long long LL; 25 int num[N][N]; 26 LL sumN[N*2], sumM[N*2]; 27 28 int n; 29 30 int main(){ 31 while(scanf("%d", &n)!=EOF){ 32 memset(sumN, 0, sizeof(sumN)); 33 memset(sumM, 0, sizeof(sumM)); 34 for(int i=1; i<=n; ++i) 35 for(int j=1; j<=n; ++j){ 36 scanf("%d", &num[i][j]); 37 sumN[i+j]+=num[i][j];//橫縱坐標之和為i+j的對角線的數值和 38 sumM[i-j+n]+=num[i][j];//橫縱坐標之差為i-j的對角線的數值和 39 } 40 41 LL maxOdd=-1, maxEvent=-1, s; 42 int x1, x2, y1, y2; 43 for(int i=1; i<=n; ++i) 44 for(int j=1; j<=n; ++j){ 45 if((i+j)&1){ 46 if(maxOdd<(s=sumN[i+j]+sumM[i-j+n]-num[i][j])){ 47 maxOdd=s;//橫縱坐標之和為奇數并且獲得對角線上數值最大的格子 48 x1=i; 49 y1=j; 50 } 51 } 52 else{ 53 if(maxEvent<(s=sumN[i+j]+sumM[i-j+n]-num[i][j])){ 54 maxEvent=s;//橫縱坐標之和為偶數并且獲得對角線上數值最大的格子 55 x2=i; 56 y2=j; 57 } 58 } 59 } 60 61 printf("%lld\n",maxOdd+maxEvent); 62 printf("%d %d %d %d\n", x1, y1, x2, y2); 63 } 64 return 0; 65 }

?

轉載于:https://www.cnblogs.com/hujunzheng/p/3946876.html

總結

以上是生活随笔為你收集整理的codeforces Gargari and Bishops(很好的暴力)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。