摘要:又题意转化为最短路,SPFA,各种注意,不然WA
        
阅读全文
 
    
        
        
摘要:在宿舍,玩了好一段时间呀……这都20天都没发表随笔了!这尼玛霸气!果断!!今晚不想做的去看了一道题,题意读了半天,但是题很简单!竟然很顺利的AC!思路:裸死的floydView Code #include <stdio.h>#include <memory.h>#define N 302#define MAXVAL 30000int map[N][N];void floyd(int n){ int i,j,k; for(k=1;k<n;k++) for(i=1;i<n;i++) for(j=1;j<n;j++) if...
        
阅读全文
 
    
        
        
摘要:..................................................................先无语,必须无语!!!!应该说是一个很简单的题:赤裸的Dijsktra!但是题意读不懂,用着有道+1个小时+坚强的意志=终于读懂了!。。。。。。。English。。。。。。。。。。然后速想代码架构,速敲代码!!但是测试数据就错了!!!!!最终调试!!发现定义最大值错了!!即#define MAX 0x7fffffff这样一来,在最大值的基础上再加上一个数就越界了,可能就是负数!以至于更新dist的值整成负的了!!!记住!这个错误,以后别犯了!!!View Code
        
阅读全文
 
    
        
        
摘要:。。。。。。。。。。。啥也不想说,我只想骂出题人!!!能不能人性点!!!R尼玛,出题数据,那是随便随机的??你知道你浪费了多少人的时间??你知道你折磨了多少人的心神??经过被百般蹂躏,我知道了它的后台数据的某些一定是不对照的,比如2跟1有关系,1跟2关系并不一定给你写出了你题目很清楚的告诉读者:跟个人的有关系的人数!!你如果说1跟2搞,而2却不一定跟1搞,那总人数-匹配数/2也不对!尼玛的怎么让AC!!很明显必须是相互的!!尼玛你这样搞是会折寿的……算了,说点正事……这个是:求最大独立集最大独立集==N-最大匹配数(即最大覆盖点数)理解:除去有关系了,都是没关系的这个相对好理解一点,那俩关系哥
        
阅读全文
 
    
        
        
摘要:这个题我想了一上午没都想的思路,刚开始按照自己的思维进行探索,结果一个小小的例子就被否定了!无奈之下还是去看了解题报告……原来它是一个:求最小覆盖点数。额,本来对这个概念并不是太熟悉,接触更多的是最大匹配~解题思想:本来这个题给人的情形是MachineA——Jobs——MachineB,根本想不到可以转换成MachineA——MachineB即转化为求最小覆盖点数,而最小覆盖点数==最大匹配数,即求最大匹配数即可!具体的说A——B,把边作为jobs,而任意一边都可以用A或者B的某一种模式完成,所以每一条边,都可以连着A_i,B_j(i,j表示模式i,j),则试着选取最少的A_i和B_j即选择最
        
阅读全文
 
    
        
        
摘要:想了好几次,一直想不出来,没思路!今天看了解题报告,才知道是一个:最小路径覆盖数问题最小路径覆盖数=N-最大匹配数这个真还不知道!但是不知道为什???草了,这博客园这东西真傻比!!字体都调不过来!View Code #include <stdio.h>#include <string.h>#define M 7200#define N 122int nodev[N];int nodeu[M],next[M];void Build_Graph(int m){ int i,v,u,ind; memset(nodev,-1,sizeof(nodev)); ind=0; for
        
阅读全文
 
    
        
        
摘要:额,又做了一遍哈,不过有一段时间没学最大流了,就当是复习复习挺好!View Code #include <stdio.h>#include <string.h>#define N 202int map[N][N];int queue[N];int pre[N];int Edmonds_Karp(int start,int end,int n){ int i,cur,front,rear; int maxflow=0; while(true) { front=rear=0; queue[rear]=start; memset(pre,-1...
        
阅读全文
 
    
        
        
摘要:简单,赤裸的最小生成树……不过,有一点小障碍的地方是数据的读取!!数据中有字符、数字掺杂这输入,整不好就读错!!开始我用getchar()光WA,无奈又写个Readint()就可以了!View Code #include <stdio.h>#include <stdlib.h>struct Edge{ int v,u; int val;}edge[200];int com(const void *a,const void *b){ return (*(Edge*)a).val-(*(Edge*)b).val;}int ancestor[27];void Sinit(in
        
阅读全文
 
    
        
        
摘要:一个很明显的最大二分匹配!尽管很明显,但我还是想了一会儿……为什么?因为我有点忘了它的实现,又想了一会儿,代码敲出来,测试样例数据时,出不来结果~调试说是栈溢出。。。我又分析了代码。。。确实有问题!缺少标记!!!最终又加了个no[N]数组,提交才AC!View Code #include <stdio.h>#include <string.h>#define M 40002#define N 202int nodev[N];int nodeu[M],next[M];int pre[N];bool no[N];void Build_Graph(int n,int m){ 
        
阅读全文