摘要: 题目链接首先这个题,我以为是DFS。。。交上各种TLE ,RE,暴栈和超时啊。。。找了一下题解,发现是图论问题。。。唉。又重新翻离散课本。。。定理:有向图的欧拉路连通且存在一个出度比入度大一的,存在一个入度比出度大一的,其他入度出度相等。有向图欧拉回路连通且入度出度都相等。交上WA,然后查错,总以为是 判断是否是联通的时候做错了,其实是 忘记判断也是欧拉回路了。。。悲剧。。。代码 好烂。#include <stdio.h>#include <string.h>#include <stdlib.h>int p[27][27],z,n,o[27],key[27] 阅读全文
posted @ 2012-06-29 16:20 Naix_x 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目链接神似白书上的“八连块”,UVA上难得的1Y。 1 #include <stdio.h> 2 #include <string.h> 3 char map[101][101]; 4 int key[101][101]; 5 int a[9]={0,0,1,-1,1,1,-1,-1}; 6 int b[9]={1,-1,0,0,1,-1,1,-1}; 7 int m,n; 8 void dfs(int x,int y) 9 {10 int i;11 key[x][y] = 1;12 for(i = 0;i <= 7;i ++)13 {14 i... 阅读全文
posted @ 2012-06-28 18:58 Naix_x 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目链接今天考物理直接掉人品了,基本上没有会做的。。。希望可以过吧。。。。题目大意:给出坐标1000个,求出能组成三角形最小的周长。这个题直接暴力 + 剪枝,自己想的几个小剪枝都没把他水过去,在解题报告的帮助下,终于水过去了。。。#include <stdio.h>#include <math.h>#include <string.h>#define N 1000000double x[1001],y[1001],mop[1001][1001];int main(){ int t,n,i,j,k,num = 0; double min,a,b,c,z,key 阅读全文
posted @ 2012-06-27 19:35 Naix_x 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目链接看错题了。。。。。导致WA 5 6次重改后(期间还打了次表发现表错了),先交了次,TLE,然后打表恶搞之。。。400+的表不长。。一下为打表的代码。应该有剪枝,唉,自己想不出来啊。。。 1 #include <stdio.h> 2 #include <string.h> 3 int p[41],z,n; 4 int mod(int x) 5 { 6 int i,mo = 0; 7 for(i = 1; i <= x; i ++) 8 { 9 mo = (mo*10 + p[i])%x;10 }11 if(mo)12 ... 阅读全文
posted @ 2012-06-25 18:58 Naix_x 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 不想说,自己没发挥好,更不能说自己超水平发挥了,只是感叹如果再多考一点,一切都都会不一样。 总是在结果出来之后,后悔当初没努力。 不过,现在的生活并没有那么差,找点感兴趣的事情去做,比在大学里虚度光阴强多了。 最后,希望今天出成绩的童鞋取得好成绩。 一份付出,一份收获,没有付出,凭什么去收获呢? 阅读全文
posted @ 2012-06-24 14:36 Naix_x 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目链接省赛前 最后一次队内比赛的题目,当时我读懂了题意,本来应该1Y的题目,开始忘加换行,导致以为算法错误还误导了队友。。。错了N次后,SCF童鞋勇猛的A了,当时比赛马上结束了,绝杀啊。。。再做1Y。。 1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5 int i,j,k,len,n,i1; 6 char p[2100]; 7 scanf("%d%*c",&n); 8 for(i = 1;i <= n;i ++) 9 scanf("%c%*c" 阅读全文
posted @ 2012-06-24 09:44 Naix_x 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目链接大一上的时候一次比赛的一个题,那个时候水平真是菜啊,拖到今天,用个函数水过了,纪念马上要结束的大一。。。#include <stdio.h>#include <string.h>#define N 200001char p[N],o[N];int main(){ int i,len; while(scanf("%s%s",p,o)!=EOF) { len = strlen(p); for(i = len;i <= 2*len-1;i ++) { p[i] = p[i-len]; } ... 阅读全文
posted @ 2012-06-23 21:38 Naix_x 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接自己的代码能力太弱了啊,这个题有应该有两个方法,一个是直接判将所能走的点,是否存在被杀的可能,另一个就是先将红方可以 控制的点都找出来,然后再判断。去年福州赛区的被板刷的题,我做了2-3天,错了10+,POJ,HDU上都交,开始的思路还清晰,后来瞎改的都不知道自己写的是什么了,今天那个有个群赛,我下了下决心,一定要BUG找出来,从网上找了代码,找数据,测了测也对啊,终于 在自己乱试的数据找到错误,一开始的思路是对的,只错了一点,结果越改,偏离的越多了,模拟题,一直是自己的短板,本来可以用2000B+解决的问题,我却写了6000B+,查错都非常困难。。。 在WA了后,一定要慎重修改,慎重 阅读全文
posted @ 2012-06-23 20:43 Naix_x 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 题目链接头一次做贪心这么给力。。。1Y,题意就是给俩字符串,如何把前一个变成后一个,4种操作,输出最短,且按 a d m c的优先级输出,分情况讨论下OK了。PS:本来以为是二维DP,一看1W,我慌乱了。。。 1 #include <stdio.h> 2 #include <string.h> 3 char p1[10001],p2[10001]; 4 int main() 5 { 6 int i,j,len1,len2; 7 while(scanf("%s%s",p1,p2)!=EOF) 8 { 9 len1 = strlen(p1);10 ... 阅读全文
posted @ 2012-06-23 16:49 Naix_x 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题目链接和经典那个报数博弈差不多,在仔细的纸上写写前面的几种情况后,猜想出规律,1Y。PS:思考时间不算长,也不算短,中规中矩。0 - p - p+q - 2p +q - 2(p+q)..... 败 胜 败 胜 1 #include <stdio.h> 2 int main() 3 { 4 int n,p,q; 5 while(scanf("%d%d%d",&n,&p,&q)!=EOF) 6 { 7 if(n%(q+p)<= p &&n%(q+p) > 0) 8 printf("LOST\n" 阅读全文
posted @ 2012-06-23 12:38 Naix_x 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目链接这个题交了18次。。。做欧拉图的时候想起这个题,我在判是否是具有相同的根的时候判错了。。。这个题的注意方向就 连通(具有相同的根),并且不能存在合并的时候具有相同根的,这样意味着,就两条路了,然后再注意0 0的时候特殊数据(看DISCUSS)。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #define N 100010 5 int p[N+1],z,o[N+1]; 6 int find(int x) 7 { 8 int r = x,t; 9 while(p[x 阅读全文
posted @ 2012-06-23 11:04 Naix_x 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题目链接根据欧拉提出的定理,存在欧拉路的充要条件是连通,不存在奇数度数节点或者2个奇数节点。存在欧拉回路是连通,不存在奇数度数节点。并查集写的有点暴力,水过。还好1Y。 1 #include <stdio.h> 2 #include <string.h> 3 int o[1001],p[1001]; 4 int find(int x) 5 { 6 while (x != p[x]) 7 x = p[x]; 8 return x; 9 }10 void merge(int x,int y)11 {12 x = find(x);13 y = find(y)... 阅读全文
posted @ 2012-06-23 10:52 Naix_x 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题目链接此题和UVA上一模一样,可是数据不一样,都很变态,UVA上是一定有小数点,而杭电上不一定,UVA上在结果为0时,输出“.”而杭电上输出0。注意这个就能AC。UVA上AC代码这里。 1 #include<stdio.h> 2 #include<string.h> 3 int k1[201],k2[201],o1[10]; 4 int main() 5 { 6 int a,b,c,i,j,num,e,d; 7 char p[10]; 8 while(scanf("%s%d",p,&num)!=EOF) 9 { 10 mem... 阅读全文
posted @ 2012-06-23 09:12 Naix_x 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题目链接DFS在调了一会后搞了出来,发现不能输出重复的,我纠结啊,思前想后,想映射出来,效率高,可是实在想不出如何实现,存了数组吧,结果数据就是如此的水。。。0ms 1 #include <stdio.h> 2 #include <string.h> 3 int p[101],o[101],sum,n,z,num[501],k[501][101]; 4 void dfs(int x,int step,int s) 5 { 6 int i,j; 7 if(s == sum) 8 { 9 z ++;10 num[z] = step-1;11 ... 阅读全文
posted @ 2012-06-22 21:44 Naix_x 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题目链接本来对弗洛伊德很没信心,1000个城市,还好,还是过了,最裸的有4000+ms,因为是无向图加了下优化,3000+ms,这个。。。。#include <stdio.h>#include <string.h>double p[1001][1001];int main(){ int i,j,k,n,m,sv,ev; while(scanf("%d",&n)!=EOF) { for(i = 1; i <= n; i ++) for(j = 1; j <= n; j ++) scanf("%lf",&p 阅读全文
posted @ 2012-06-22 19:10 Naix_x 阅读(175) 评论(4) 推荐(0) 编辑