算法竞赛入门经典——集训指南 第一章 算法设计基础
wcr1996
个人博客:wcr1996.com
展开
-
UVa 10970 - Big Chocolate
水题巅峰,算数题。。#includeusing namespace std;int main(){ int n,m; while(cin>>n>>m) cout<<m*n-1<<endl; return 0;}原创 2014-12-05 21:33:42 · 1277 阅读 · 0 评论 -
UVa 12097 - Pie(二分查找)
给出n、m,有n个蛋糕,m+1个人,每个蛋糕都可以切开,求每人分一整块蛋糕的最大值。求出蛋糕大小总和,然后进行二分查找,对二分的值进行验证。原创 2015-08-29 20:07:32 · 1456 阅读 · 0 评论 -
UVa 1121 - Subsequence(尺取法)
给出一个序列,求连续子序列和大于s的最短子序列长度。尺取法,最开始子序列只有第一个数,当不满足条件时,移动终点延长子序列;当序列和满足条件时,移动起点缩短子序列,遍历数组复杂度O(n)。原创 2015-08-29 20:30:36 · 1333 阅读 · 0 评论 -
UVa 10635 - Prince and Princess(LCS转LIS)
给出两个序列,第一个序列中的数不重复,求两个序列的LCS。以为第一个序列的数不同,所以可以保存数在第一个序列中出现的顺序,然后删除第二个序列中不再第一个序列中的数,将剩下的数换成在第一个序列中出现的位置,对处理好的序列求LIS。原创 2015-08-29 20:48:52 · 1354 阅读 · 0 评论 -
UVa 11549 - Calculator Conundrum(Floyd判圈法)
现在输入一个整数k,每次取前n位,反复平方,一直下去,输出能得到的最大数。每次取前n位所以一定会出现循环,使用Floyd判圈法判断是否出现重复。输出循环中的最大值。原创 2015-08-29 20:24:46 · 1358 阅读 · 0 评论 -
UVa 11078 - Open Credit System(维护最大值)
最大相对差问题。维护区间最大值计算。原创 2015-07-25 10:59:51 · 1506 阅读 · 0 评论 -
UVa 1394 - And Then There Was One(约瑟夫数论)
数论问题,n个人围成环,每点m个就删掉点到的那个,问最后剩下人的编号。 递推公式为f[i]=(f[i−1]+m)f[i]=(f[i-1]+m)%i。原创 2015-07-25 10:45:34 · 1339 阅读 · 0 评论 -
UVa 1344 - Tian Ji -- The Horse Racing(贪心)
给出田忌和齐威王的马的属性,求田忌最多能赢多少钱。 类似于故事里的方法,排序后田忌最差的马若跑不过齐王最差的马,就和最好的马跑。最好的马优先与能比过的最好的马跑。原创 2015-03-22 21:35:42 · 1419 阅读 · 0 评论 -
UVa 11039 - Building Designing
又是水题,排序+计数遍历。#include#include#include#includeusing namespace std;bool cmp(int a, int b){ return abs(a)<abs(b);}int main(){ ios::sync_with_stdio(false); int n,t; cin>>t; wh原创 2014-12-05 21:01:06 · 1334 阅读 · 0 评论 -
UVa 10382 - Watering Grass
贪心法,区间覆盖问题。蓝书开始这几道题还真是水啊。#include#include#include#includeusing namespace std;struct sp{ double o,r,l1,l2; bool operator <(const sp &a)const{ if(l1==a.l1) return l2<a.l2;原创 2014-12-05 22:34:04 · 1372 阅读 · 0 评论 -
UVa 10905 - Children's Game
字符串排序题,排序输出就行#include#include#include#includeusing namespace std;bool cmp(string s1,string s2){ return s1+s2>s2+s1;}int main(){ ios::sync_with_stdio(false); int n; while(cin>>原创 2014-12-06 14:11:40 · 1373 阅读 · 0 评论 -
UVa 11636 - Hello World!
这么水的道题,居然WA了一次,看样例最后是-1,就用n==-1,做break的判断了,万万没想到,居然最后是个负数就break。。#includeusing namespace std;int main(){ ios::sync_with_stdio(false); int n=0,a[20]={1},t=0; for(int i=1;i<20;i++) a[i]=原创 2014-12-05 19:53:16 · 1328 阅读 · 0 评论 -
UVa 11520 - Fill the Square(构造法)
向正方形中填字母,每个字母不能和邻近的字母相同,输出字典序最小的解。直接从第一个开始构造,从A到Z枚举生成。原创 2015-08-29 20:19:46 · 1312 阅读 · 0 评论