Codeforces 333D Characteristics of Rectangles
2015-01-29 20:58
507 查看
二分。
收获:二分判断函数中,不一定非要解合法才返回真,只要它能单调的逼近真正的解即可。比如这道题中一些值在矩阵中不一定存在但是判断函数仍然返回1,最终得到的答案一定是存在的。
代码:
收获:二分判断函数中,不一定非要解合法才返回真,只要它能单调的逼近真正的解即可。比如这道题中一些值在矩阵中不一定存在但是判断函数仍然返回1,最终得到的答案一定是存在的。
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int a[1005][1005]; int N,M; bool vis[1005][1005]; int pos[1005]; bool C(int mid){ memset(vis,0,sizeof(vis)); memset(pos,0,sizeof(pos)); for(int i=1;i<=N;i++){ int PNum=0; for(int j=1;j<=M;j++){ if(a[i][j]>=mid) pos[++PNum]=j; } for(int j=1;j<=PNum;j++){ for(int k=1;k<j;k++){ if(vis[pos[j]][pos[k]]) return 1; vis[pos[j]][pos[k]]=1; } } } return 0; } int main(){ scanf("%d%d",&N,&M); int Min=200000000,Max=0; for(int i=1;i<=N;i++){ for(int j=1;j<=M;j++){ scanf("%d",&a[i][j]); Max=max(Max,a[i][j]); Min=min(Min,a[i][j]); } } int l=Min-1,r=Max+1; while(l<r-1){ int mid=(l+r)/2; if(C(mid)){ l=mid; } else r=mid; } printf("%d",l); return 0; }
相关文章推荐
- CodeForces 714D Searching Rectangles
- codeforces 325A. Square and Rectangles
- codeforces 844B Rectangles (概率)
- CodeForces-MemSQL start[c]up Round 1-A. Square and Rectangles
- [Codeforces 333D] Characteristics of Rectangles (二分答案+鸽笼原理)
- Codeforces 763B-Timofey and rectangles
- CodeForces 372b_Counting Rectangles is Fun_dp(暴力)
- codeforces 372B B. Counting Rectangles is Fun(暴力)
- Codeforces 844 B Rectangles
- 【codeforces 764D】Timofey and rectangles
- CodeForces 844 B.Rectangles(水~)
- Codeforces 763B-Timofey and rectangles (思维,四色定理)
- Codeforces 844B - Rectangles(大数据)
- Codeforces 844B - Rectangles - 思维
- Codeforces 484B Maximum Value(排序+二分)
- codeforces 589F:贪心
- CodeForces 540A Combination Lock
- Codeforces 498D Unbearable Controversy of Being(暴力求菱形个数)
- CodeForces - 214B
- Codeforces 901C. Bipartite Segments(思维题)