2013年6月24日

EOJ-2891 多次函数

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2891题意:给出一个函数解析式,画出其在定义域及值域为[-20,20]内的函数图像用一个数组记录每个次数前对应的系数。需要注意的是算出的函数值对数组下标的转换 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 using namespace 阅读全文

posted @ 2013-06-24 20:42 KimKyeYu 阅读(319) 评论(0) 推荐(0) 编辑

2013年6月22日

EOJ-2614 组网计划

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2614题意:求其最小生成树,且判断最小生成树是否唯一。prim法,判断唯一的方法:进行两次prim,第一次,每次加最小边时当出现多个最小边时,总是添加结点编号较小的那个,而第二次总是添加较大那个 (即若总是无多个最小边选择,最小生成树必是唯一的),若生成树是完全相同的则唯一,方法是:两次分别记录加边的情况,若加边情况相同则其唯一,否则有多个解。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 阅读全文

posted @ 2013-06-22 03:20 KimKyeYu 阅读(493) 评论(0) 推荐(0) 编辑

2013年6月21日

EOJ 1821 Hanoi Tower III

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1821这题就等价于普通的汉诺塔,只是每一层移动两次,原来需要2^n - 1次,则现在需要2^(n + 1) - 2次,递推式为f(i) = 2 * f(i - 1) + 2 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 unsigned long long f[62]; 5 int main() 6 { 7 f[1] = 2; 8 for (int i = 2; i < 62; i 阅读全文

posted @ 2013-06-21 13:12 KimKyeYu 阅读(181) 评论(0) 推荐(0) 编辑

EOJ-1860 Finger Counting

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1860题意:简单地说,对于一个1,2,3,4,5,4,3,2,1,2,……序列,限定某个数最多出现cnt次,求可得到序列元素个数的最大值cnt为10^8级,不能直接模拟,故找到循环节1,2,3,4,5,4,3,2有8个元素,1和5各出现一次,2,3,4各出现2次,观察序列可得到规律,即(cnt/出现次数)+a,a由该数的位置决定可推广至n种数字的序列。对于1,2,3,4,……n-1,n,n-1,…,2,1,2,……可知 循环节长度d=2n-2。循环节中,1与n各出现1次,其余各出现2次。限定某个数 阅读全文

posted @ 2013-06-21 02:20 KimKyeYu 阅读(220) 评论(0) 推荐(0) 编辑

2013年6月18日

EOJ-1839 恶魔之城

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1839简单最短路径逃离迷宫问题,但要求依次输出路径坐标(任意)方法是用一个结构体二维数组记下每次满足条件坐标的前一个点,因为BFS的原因,每个点最多只可能访问一次,所以可以用这种方法,最后从终点开始用递归完成输出。注意在走不通迷宫的时候不要输出路径 1 #include<map> 2 #include<set> 3 #include<list> 4 #include<cmath> 5 #include<ctime> 6 #include& 阅读全文

posted @ 2013-06-18 22:16 KimKyeYu 阅读(272) 评论(0) 推荐(0) 编辑

2013年6月16日

EOJ 1820 Hanoi Tower II

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1820汉诺塔变形:每步都得顺时针。(下图为逆时针)。记 f[n] 为 把n个盘从 s->t 不经中间节点。如(A->B, B->C, C->A)记 g[n] 为 把n个盘从 s->t 经中间节点。如(A->C, B->A, C->B)分析见下图: 1 #include <stdio.h> 2 3 int main() 4 { 5 unsigned long long f[45], g[45]; 6 f[1] = 1, g[1] = 2; 阅读全文

posted @ 2013-06-16 20:43 KimKyeYu 阅读(288) 评论(0) 推荐(0) 编辑

EOJ 1822 Hanoi Tower IV

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1822题意:双色汉诺塔,只是最终结果需保证相同大小的两块不倒置;容易想错:我最开始写成了:f[i] = 4*f[i-1] + 3;引用别人的题解:http://bbs.csdn.net/topics/270038285 1 #include <stdio.h> 2 3 int main() 4 { 5 long long f[65], //没有倒置. 6 g[65]; //只有最大的两个同尺寸盘子倒置 7 f[1] = 3, g[1] = 2; 8 for(in... 阅读全文

posted @ 2013-06-16 16:23 KimKyeYu 阅读(182) 评论(0) 推荐(0) 编辑

2013年6月15日

EOJ-2912 放书

摘要: 没什么营养的DFS,主要是为了好玩第一次尝试写文件离线打表(其实没意义)输出的总文件长度大概20几k.. 1 #include<map> 2 #include<queue> 3 #include<cmath> 4 #include<cctype> 5 #include<cstdio> 6 #include<string> 7 #include<cstdlib> 8 #include<cstring> 9 #include<iostream>10 #include<algorithm 阅读全文

posted @ 2013-06-15 17:47 KimKyeYu 阅读(313) 评论(0) 推荐(0) 编辑

EOJ-2902 Contest

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2902题意:给出一系列百分数(仅取两位小数位并四舍五入),意为第i题的通过率,从这些数据中得到至少有几个队伍参赛仅取两位小数,故可以通过枚举完成(1~100)假设有n个队伍参赛,则通过率只可能是0/n,1/n,..n/n; 1 #include<map> 2 #include<queue> 3 #include<cmath> 4 #include<cctype> 5 #include<cstdio> 6 #include<strin 阅读全文

posted @ 2013-06-15 17:05 KimKyeYu 阅读(169) 评论(0) 推荐(0) 编辑

2013年6月12日

EOJ 1499 Gauss And Fibonacci

摘要: EOJ 1499 http://acm.cs.ecnu.edu.cn/problem.php?problemid=1499此题是要求F数列(Fibonacci)f[n]的前n项和S[n]; 注意到f[n] = f[n-1] + f[n-2],错项相加有 f[0] + f[1] + f[2] + ... + f[n-2]~ S[n-2] (f[0] = 0) +f[1] + f[2] + f[3] + ... + f[n-1] ~ S[n-1]-----------------------------------------------------=f[2] + f[3] + f[... 阅读全文

posted @ 2013-06-12 23:59 KimKyeYu 阅读(233) 评论(1) 推荐(1) 编辑

导航