2012 Multi-University Training Contest 8
摘要:1001显然,题目给的是一个0/1规划模型。解题的关键在于如何看出这个模型的本质。3个条件明显在刻画未知数之间的关系,从图论的角度思考问题,容易得到下面3个结论:1.X12+X13+...X1n=1于是1号节点的出度为12..X1n+X2n+...Xn-1n=1于是n号节点的入度为13.∑Xki=∑Xij于是2~n-1号节点的入度必须等于出度于是3个条件等价于一条从1号节点到n号节点的路径,故Xij=1表示需要经过边(i,j),代价为Cij。Xij=0表示不经过边(i,j)。注意到Cij非负且题目要求总代价最小,因此最优答案的路径一定可以对应一条简单路径。最终,我们直接读入边权的邻接矩阵,跑一
阅读全文
posted @
2012-08-16 19:43
pony1993
阅读(307)
推荐(0)
2012 Multi-University Training Contest 7
摘要:1003Dragon Ball不用单调队列也蹭过去了代码:http://www.cnblogs.com/pony1993/archive/2012/08/14/2638697.html1001简单的图论题每条边除了有边权以外,还有一个字母标记。标记可以是“LOVE”里面任意字符。每个点,要拆成四个点,分别代表到达该点的标记为L,O,V,E的最短路。第一步就是求最短路,直接spfa就可以了。trick在于,至少要找到一个LOVE串,在只有一个节点的时候,有几条自环,至少必须走LOVE四条自环。此时,必须另外加一个节点表示开始节点。还有一个trick就是距离可能超过int。1 2 1314520
阅读全文
posted @
2012-08-14 18:08
pony1993
阅读(378)
推荐(1)
2012 Multi-University Training Contest 6
摘要:Problem 1001 HDU4350 Card代码:View Code1#include<iostream>2#include<cstring>3#include<cstdio>4usingnamespacestd;5intmain()6{7inta,t,i,n,m,k,num,cas=0;8intb[53],c[101];9scanf("%d",&t);10while(t--)11{12cas++;13num=0;14a=1;15for(i=1;i<=52;i++)16scanf("%d",&
阅读全文
posted @
2012-08-09 19:23
pony1993
阅读(432)
推荐(0)
2012 Multi-University Training Contest 5
摘要:1011 HDU4349 Xiao Ming's Hope代码:View Code1#include<iostream>2#include<cstring>3#include<cstdio>4usingnamespacestd;56intmain()7{8intn;9while(~scanf("%d",&n))10{11intnum=1;12while(n>0)13{14if(n&1)15num*=2;16n/=2;17}18printf("%d\n",num);19}20return0;
阅读全文
posted @
2012-08-07 20:36
pony1993
阅读(416)
推荐(0)
2012 Multi-University Training Contest 4
摘要:1001 Image Recognition题解: 本题题目大意在一个01方阵中找出四条边全都是1的正方形的个数,对于正方形内部则没有要求。 一个直观的想法是首先用N^2的时间预处理出每一个是1的点向上下左右四个方向能够延伸的1的最大长度,记为四个数组l, r, u, d。然后我们观察到正方形有一个特征是同一对角线上的两个顶点在原方阵的同一条对角线上。于是我们可以想到枚举原来方阵的每条对角线,然后我们对于每条对角线枚举对角线上所有是1的点i,那么我们可以发现可能和i构成正方形的点应该在该对角线的 [i, i + min(r[i], d[i]) – 1] 闭区间内, 而在这个区间内的点 j 只要
阅读全文
posted @
2012-08-02 17:20
pony1993
阅读(338)
推荐(0)
2012 Multi-University Training Contest 3
摘要:1001 HDU4320 Arcane Numbers 1GCD 0MS 无压力代码:View Code1#include<iostream>2#include<cstdio>3#include<cstring>4#defineLL__int645usingnamespacestd;6LLgcd(LLa,LLb)7{8returnb==0?a:gcd(b,a%b);9}10intmain()11{12LLa,b,c;13intt,k=0;14scanf("%d",&t);15while(t--)16{17k++;18scanf(&
阅读全文
posted @
2012-07-31 18:43
pony1993
阅读(447)
推荐(0)
2012 Multi-University Training Contest 2
摘要:看完了第一道题,感觉贪心可做,然后跟cz说了一下,他去写,然后我去看另外一道题,就这样悲剧开始了,被坑了一下午,看了一道自认为不算太难的题,然后自己写写,试了点数据感觉不怎么对,然后删了重新想,一直就在纠结,中间交流了一下其他题,在我试图暴力第二道题失败后继续思考那道题,就这样思考到了最后1个小时果断放弃去交流其他题了。最后貌似那道题只有11个队过了。。赛后看了下题解:较难的动态规划题、、、Orz。。1001Hero代码:View Code1#include<iostream>2#include<cstdio>3#include<cstring>4#incl
阅读全文
posted @
2012-07-26 19:41
pony1993
阅读(351)
推荐(0)
2012 Multi-University Training Contest 1
摘要:1001Clairewd’s message题目大意:第一行输入字母加密规则,第二行输入一个串a以及加密后的a’组成了一个串a’a。但是这个串残缺了一部分内容(a的部分残缺了),只剩下了s=a’b(b是a的一个前缀或者空串)让求出最短的a。View Code1#include<map>2#include<cstdio>3#include<cstring>4#include<iostream>5constintmaxn=100001;6usingnamespacestd;7intmain()8{9chars[27],s1[maxn];10intl1
阅读全文
posted @
2012-07-20 10:11
pony1993
阅读(506)
推荐(0)