一些代码-二分图格子进行覆盖如果可以全部就putsYES_第1页
一些代码-二分图格子进行覆盖如果可以全部就putsYES_第2页
一些代码-二分图格子进行覆盖如果可以全部就putsYES_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

POJ2446N*MK2*1的矩形,对所有非空洞puts("YES");(除了洞),+K=N*MYES#defineMAX1089boolg[MAX][MAX//邻接矩阵,trueboolflag,visit[MAX//记录V2intmatch[MAX];//记录与V2中的点匹配的点的编号intcnt;//二分图中左边、右边集合中顶点的数目boolhole[MAX][MAX];intbooldfs(int{for(inti=1;i<=cnt;{ifg[u][i&&visit[i])//如果节点iu{visit[i //标记i为已查if(match[i]==-1||dfs(match[i]))//如果i 一个匹配M中,或者在匹配M中,但是从与i相邻的节点出发可以有增广路{match[iu;//记录查找成功记录,更新匹配M(即“取反return //返回查找成}}}return}int{intfor(i=1;i<=cnt;++i){memset(visit,false,sizeof(visit));//if(dfs(i //从节点i尝试扩{}}return}int{intwhile(scanf("%d%d{for(i=1;i<=k;++i){scanf("%dhole[x][y]=}if((m*n-k)&1)//{}cnt=for(i=1;i<=m;{for(j=1;j<=n;{if(hole[i][jfalse)//{id[i][j] }}}}for(i=1;i<=m;{for(j=1;j<=n;{if(hole[i][j]=={if(i-1>0&&hole[i-1][jfalse//建图,要注意边界问题g[id[i][j]][id[i-1][j]]=true;if(i+1<=m&&hole[i+1][j]==g[id[i][j]][id[i+1][j]]=true;if(j-1>0&&hole[i][j-1]==false)g[id[i][j]][id[i][j-1]]=true;if(j+1<=n&&hole[i][j+1]==false)g[id[i][j]][id[i][j+1]]=}}}ans=ifanscnt)//}return}POJ2724题意:有一台可以净化奶酪的机器,用二进制表示净化的奶酪的编号。但->010100和011100。现在由于不,他以同样的方式弄脏了某些奶酪,问你最少操作数=总污染数-2*最大匹配+最大匹配。(代码中求出的最大匹配数是实际值的2倍)。判断二进制是否之差一位C=A^B; #include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<climits>#include<vector>#include<map>#include<iomanip>#include<algorithm>usingnamespacestd;typedeflonglongll;intn,m,vv;intmatch[1010],use[1010];vector<int>gg[1010];intdfs(int{inti,j;use[x]=1;for(i=0;i<gg[x].size();{intu=gg[x][i],w=match[u];if(w<0||!use[w]&&dfs{match[x]=u;match[u]=x;return1;}}return}inthungary{intres=memset(match,-1,for(intv=0;v<vv;{if(match[v]==-{memset(use,0,sizeof(use));if(dfs(v))res++;}}return}intmain{inti,while(cin>>n>>{if(n==0&&m==intche[2010];//没用set的话这边数组要开两倍,set有重复就去除for(i=0;i<1010;i++)gg[i].clear();vv=0;while(m--){getchar();charch;intsum=0;intmarki=-1;for(i=n-1;i>=0;i--{ch=getchar();if(ch=='*'){marki=sum=sum*}elsesum=sum*2+(ch-}che[vv++]=if(marki!=-1)che[vv++]=(sum+(int)pow(2.0,}sort(che,chevv);//排序unique是去掉相邻的重复,所以要先排序vv=unique(che,che+vv)-che;//去重复for(i=0;i<vv-1;{for(j=i+1;j<vv;{intc=che[i]^if(c&&((c&(c1))0))//二进制只差一位可以这样表{gg[i].push_back(j);//建图,把那些只差一位的数字做边gg[j].push_back(i);}}}coutvvhungaryendl;//匈牙利模板,所有点减去最大匹}return}usingnamespacestd;constintmaxn=55;constintmaxm=105;intcnt[maxn];intmat[maxm][maxm];voidinit(){memset(cnt,0,memset(mat,0,}intn,intvis[maxm],intdfs(intnow,intc){//多加一个气球颜色的参//intfor(inti=1;i<=n;if(vis[i]0&&mat[now][i]c){//用行去匹配列vis[i]=1;if(link[i]==-1||dfs(link[i],c)){link[i]=now;return}}}return}intkm(intmemset(link,-1,sizeof(link));intans=0;for(inti=1;i<=n;i++){memset(vis,0,sizeof(vis));ans+=dfs(i,c);}return}intwhile(scanf("%d%d",&n,&k)==2,n+k){for(inti=1;i<=n;for(intj=1;j<=n;j++){scanf("%d",&mat[i][j]);}}intnum[maxn];intCNT=0;for(inti=1;i<=50;i++){if(cnt[i]&&km(i)>k){num[CNT]=i;}}if(CNT==printf("%d",for(inti=1;i<CNT;i++)printf("%d",num[i]);}}return}Hdu2236在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<climits>#include<iomanip>#include<algorithm>usingnamespacestd;intmaxx,minn;int_,cases=0,mark;constintMAX_N=110;intmm[MAX_N][MAX_N];intmx[MAX_N],my[MAX_N];//分两个数组就不用[0,n)[n,n+n)这样分行列了intuse[MAX_N];intv,n,l,r,mid,low;intdfs(intx){inti,for(i=0;i<n;{if(mm[x][i]>=low&&mm[x][i]<=low+/加上对边,也就是图中值的要{use[i]=if(my[i]==-1||{my[i]=x;mx[x]=i;return1;}}}return}int{memset(mx,1,sizeof(mx));//mx行的匹memset(my,1,sizeof(my));//my列的匹配for(v=0;v<n;v++){memset(use,0,if(!dfs(v))return0;//一旦有某一行没有匹配到就返回}return}int{inti,j;cin>>_;while(_--){cin>>maxx=-100,minn=100;for(i=0;i<n;i++){for(j=0;j<n;{cin>>maxxmax(mm[i][j],maxx);//找出图中最大最小的数值m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论