Aizu 0525 Osenbei(状压+贪心)
生活随笔
收集整理的這篇文章主要介紹了
Aizu 0525 Osenbei(状压+贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:翻煎餅,只能橫著翻或者豎著翻。問最多有多少朝上?
行只有10,所以枚舉一下2^10的狀態,每列取0或1中最大的一個。
在枚舉外面把餅翻好,枚舉里面指針指一下就好。(位運算或bitset亂搞
#include<bits/stdc++.h> using namespace std;const int maxn = 10000; int a[20][maxn]; int *b[10];//#define LOCAL int main() { #ifdef LOCALfreopen("in.txt","r",stdin); #endifint R,C;while(scanf("%d%d",&R,&C), R){for(int i = R; i--;){for(int j = C; j--;){scanf("%d",a[i]+j);a[i+R][j] = a[i][j]^1;}}int ans = 0;for(int S = 1<<R; --S >= 0;){for(int i = 0; i < R; i++){b[i] = a[i + (S>>i&1?R:0)];}int cur = 0; //b[0] b[1]for(int j = 0; j < C; j++){int cnt = 0;for(int i = 0; i < R; i++){if(b[i][j]) cnt++;}cur += max(cnt,R-cnt);}ans = max(cur,ans);}printf("%d\n",ans);}return 0; }?
轉載于:https://www.cnblogs.com/jerryRey/p/4889639.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Aizu 0525 Osenbei(状压+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象(四)
- 下一篇: 200.000.00是多少人民币