10 2013 档案

摘要:本来就是水题一道。题意:一个人要从点1去到点2,中间还有很多点和很多条边。问你如果他每次走的边(a,b)都满足:a点到目标点的最短距离 2 #include 3 #include 4 #include 5 using namespace std; 6 const int maxn=1005; 7 const int INF=0x3f3f3f3f; 8 struct Edge{ 9 int from,to,dist;10 };11 struct HeapNode{12 int d,u;13 bool operator rhs.d;16 }17 };18 st... 阅读全文
posted @ 2013-10-11 22:45 howardcn 阅读(213) 评论(0) 推荐(0)
摘要:题目大意:给出一幅画,找出里面的象形文字。要你翻译这幅画,把象形文字按字典序输出。思路:象形文字有一些特点,分别有0个圈、1个圈、2个圈...5个圈。然后dfs或者bfs,就像油井问题一样,找出在同一块的0,找出在同一块的1,分别标上记号。对于每个同一块的1,如果它们只和1个‘0’的块相邻,就表明这个象形文字没有圈。如果和2个‘1’的块相邻,就说明这个象形文字有一个圈。依此类推...和6个‘1’块相邻的就有五个圈。最后统计一下每个象形文字和多少不同的块相邻,排一个序,输出。 要注意的是,处理输入的时候,给读入的图的周围留一个‘0’构成的圈。为什么呢?这个自己想。 1 #include 2... 阅读全文
posted @ 2013-10-11 20:16 howardcn 阅读(477) 评论(0) 推荐(0)
摘要:题目给出的是Sij的正负号,Sij=ai+...+aj,所以令前缀和Bi=a0+a1+..+ai,a0=0,B0=0,则有Sij=Bj-B(i-1);由此构造出Bi的拓扑序列,只要每个拓扑序列相邻的Bi的值只相差1,那样总共只有不会超过10个Bi,最大的Bi和最小的Bi的差值的绝对值小于10,因为ai=Bi-B(i-1),ai的绝对值就必然不超出10; 1 #include 2 #include 3 #define CL(x) memset(x,0,sizeof(x)) 4 const int maxn=15; 5 bool map[maxn][maxn]; 6 char str[maxn.. 阅读全文
posted @ 2013-10-06 08:34 howardcn 阅读(371) 评论(0) 推荐(0)
摘要:大神博客链接http://blog.csdn.net/kksleric/article/details/8021276这道题的差分序列从没看过,公式题。先构造从0到m的第p阶差分序列,算出0^p,1^p,...,p^p,填入表的第一行;然后前向差分,求出以下所有(p-1)~1阶部分的差分表,差分表的最左边一竖行记作C0、C1...Cp。令C[n+1][1]=n,用递推构造C[n+1][1]~C[n+1][p+1]的组合数打个一维表C[];最后利用C0*C[1]+C1*C[2]+...+Cp*C[p+1]得出答案...Orzimport java.io.PrintWriter;import ja 阅读全文
posted @ 2013-10-04 20:19 howardcn 阅读(620) 评论(0) 推荐(0)
摘要:有n个珠子,每颗珠子有左右两边两种颜色,颜色有1~50种,问你能不能把这些珠子按照相接的地方颜色相同串成一个环。可以认为有50个点,用n条边它们相连,问你能不能找出包含所有边的欧拉回路首先判断是否在一个联通分量中,在判断是否存在欧拉回路,最后输出欧拉回路。 1 #include 2 #include 3 const int maxn=55; 4 const int INF=1x)mn=x;if(mn>y)mn=y;37 if(mx<x)mx=x;if(mx<y)mx=y;38 x=find(x);y=find(y);39 ... 阅读全文
posted @ 2013-10-04 15:20 howardcn 阅读(178) 评论(0) 推荐(0)