
acm刷题
进程击序的媛
身体和灵魂,健身与学习,都在路上。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分数拆分(Fraction Again?!, Uva 10976)
这题本身是很简单的,大概思路是这样的: 容易知道y是从k+1到2k的,所以我先循环枚举y值,然后根据1/k = 1/x + 1/y 计算 x = y*k / (y-k) 这里x肯定算出是double型 然后判断是否为整数,是的话就是要输出的内容 难点是,每次计算出的x,y,k,不能直接输出,得先保存在string类型中,开始我直接string s = “1/” + k + " = 1原创 2017-07-06 10:40:25 · 306 阅读 · 0 评论 -
最大乘积(Maximum Product, UVa 11059)
分两步 1.定义一个函数,参数是i,表示求以si开头的子串的最大乘积 2.分别以i为0,1,2,,3.。。。。。n 调用该函数, 然后在这些乘积中选出最大值,就是所求。 #include using namespace std; const int maxn = 18 + 5; int s[maxn]; int n; long long _max(int i) //计算数组中从i出原创 2017-07-05 21:34:02 · 326 阅读 · 0 评论 -
除法(Division, UVa 725)
先对分子的五位数进行排列,如若两两不相等,则乘上给的积得到分母 将分母拆分成五位数,对以上的十位数再次判断是否两两不相等 如若两两不相等,输出 利用set容器判断是不是两两不相等, #include #include #include using namespace std; bool different(int a, int b, int c, int d, int e, int原创 2017-07-05 20:59:12 · 385 阅读 · 0 评论 -
Patrol Robot UVa1600巡逻机器人
#include #include #include #include using namespace std; int n,m,k,t; int map[25][25]; bool vis[25][25][25];//增加一个维度Z来表示跃过的墙的层数。 int dx[4]= {1,0,-1,0}; int dy[4]= {0,1,0,-1}; struc转载 2017-07-05 17:45:37 · 425 阅读 · 0 评论 -
骑士的移动(Knight Moves, UVa 439)
本题实际上就是一次BFS,很普通,我这里利用对称性,将a-h视作行,1-8视作列,且a在上,h在下,1在左,7在右,这样符合C语言的数组习惯#include #include #include using namespace std; const int maxn = 8+5; int dir[maxn][maxn]; //初始值设为0,表示还未访问,出发点的值设为1,以后没进一层,相应位置d原创 2017-07-04 16:30:13 · 795 阅读 · 1 评论 -
二叉树重建(uva 536)
#include #include using namespace std; void postorder(string s1,string s2) { int len1 = s2.find(s1[0]), len2 = s2.length() - len1 - 1; if(len1 != 0)postorder(s1.substr(1, len1), s2.substr(0, len1)原创 2017-07-04 15:14:10 · 350 阅读 · 0 评论 -
S树(S-Trees, Uva 712)
#include #include #include using namespace std; const int maxn = 7+5; const int maxn1 = 1024; int n, m; int weight[maxn]; //保存xi的顺序 char terminal[maxn1]; char varible[maxn]; //排序前的输入值,按wei原创 2017-07-03 17:32:49 · 953 阅读 · 0 评论