[TJOI2016&HEOI2016]
2016-05-26 19:02
417 查看
很有意思。是因为排序那道题才听闻今年tjoi2016的。
题是好题!先把它刷完再去把zhihu look through一遍。
bzoj4552
以后看到什么做不出的题,看看能否写二分!!!!写二分!!!!写二分!!!!!!!!
二分答案,大于mid的取一,否则为0,写的时候注意了一些细节,所以效率比较高。
二分的时候边界少打了个等于,下次要注意回来看边界!
膜鏼添动力--
#include<cstdio> #include<cstring> #include<algorithm> #define N 10000 using namespace std; char st[55][55]; int edgenum,n,ans,m,x[55][55],y[55][55],next ,vet ,head ,flag ,match ; void add(int u,int v) { edgenum++;vet[edgenum]=v;next[edgenum]=head[u];head[u]=edgenum; //printf("%d %d\n",u,v); } int dfs(int u) { int e=head[u];flag[u]=1; while(e>0) { int v=vet[e]; if(match[v]==0||(flag[match[v]]==0&&dfs(match[v])==1)) { match[v]=u; return 1; } e=next[e]; }return 0; } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%s",st[i]+1); } int A=1,B=1; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(st[i][j]=='#')A++;x[i][j]=A; }A++; } for(int j=1;j<=m;j++) { for(int i=1;i<=n;i++) { if(st[i][j]=='#')B++;y[i][j]=B; }B++; } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(st[i][j]=='*') { int u=x[i][j],v=y[i][j];add(u,v); } for(int i=1;i<=A;i++) { memset(flag,0,sizeof(flag)); ans+=dfs(i); } printf("%d",ans); }View Code
【bzoj4555】
NTT %%%NiroBC
感觉这辈子都不用做这道题了。。。
【Bzoj4556】
SAM..........orz
相关文章推荐
- 【图像处理】Haar Adaboost 检测自定义目标(视频车辆检测算法代码)
- 有意思的一些东西
- 排序和顺序统计量之堆排序
- [CQU 21466] zzblack与斐波那契数列 (矩阵快速幂)
- 在已有元素后面插入一个新元素,属于通用型函数insertAfter(newElement,targetElement)
- Node.js的npm包管理器基础使用教程
- js和jQuery以及easyui实现对下拉框的指定赋值
- POM文件详解
- JAVA接口
- 切记!在服务器上修改东西,一定要备份!!!
- mysql 初探(一)
- ACM--多边形凹凸判断--HDOJ 2108--Shape of HDU
- iOS NSMutableAttributedString/NSAttributedString 富文本设置
- DatePickerDialog用法
- HashMap工作原理
- 图片库改进版
- mybatis系列-01-JDBC
- LA 3026 && POJ 1961 Period (KMP算法)
- JAVA多态
- scala高级内容(二) - Implicit