uva
shiqi_614
这个作者很懒,什么都没留下…
展开
-
Uva 12436 Rip Van Winkle's Code(区间更新,区间查询)
题意:对于长度为250000的区间,给了你四种操作:操作A,从st到ed这段区间内的数,分别加上1,2,...,st-ed+1。操作B,从st到ed这段区间内的数,分别加上,st-ed+1,st-ed,...,1。操作C,将st到ed这段区间内的数赋值成x。操作S,查询st到ed的这段区间内的数的总和。因为操作A和操作B都是操作的实际上都是等差数列,所以可以一起考虑。还是线段树,对于操作AB,原创 2012-08-18 09:33:38 · 2436 阅读 · 0 评论 -
uva 591 Box of Bricks
题意:有n个数,问当把所有的数值均匀分配,需要移动多少个1.#include #include #include using namespace std;const int N=55;int iabs(int a){return a>0?a:-a;}int main(){ int n,a[N],t_cnt=0; while(scanf("%d",&n)!=EOF)原创 2011-12-02 18:11:42 · 879 阅读 · 0 评论 -
uva 621 Secret Research
题意:根据题目判断,然后输出对应字符。。#include #include #include using namespace std;int main(){ int n; scanf("%d",&n); while(n--) { char str[1000]; scanf("%s",str); int l原创 2011-12-02 16:38:08 · 980 阅读 · 0 评论 -
uva 10790 How Many Points of Intersection?
题意:有两个线,一在上,一在下,两线上各有n,m个点,使它们两两相连,使达到的交点最多(不包括线上的点),问你交点的数目。把第一个坐标排序后,求第二个坐标的逆序对个数。#include #include using namespace std;int main(){ int n,m,t_cnt=0; while(scanf("%d%d",&n,&m)!=EOF)原创 2011-10-30 20:54:33 · 721 阅读 · 0 评论 -
uva 11044 Searching for Nessy
题意:给你一个n*m(6#include #include using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d%d",&n,&m); n-=2;m-=2; int num原创 2011-10-30 20:51:50 · 760 阅读 · 0 评论 -
uva 10719 Quotient Polynomial
题意:f(x)=(x-k)p(x)+r,给你k,给你f(x)的各项系数,要你求出p(x)和r。#include #include #include #include using namespace std;const int N=10005;int a[N],ans[N];int deal(char*,int*);int main(){ int k=0; wh原创 2011-10-30 20:50:08 · 882 阅读 · 1 评论 -
uva 10014 Simple calculations
题意: 已知公式ai = (ai–1 + ai+1)/2 – ci ,给你a0,an+1,c1...cn,问a1,如果我们知道a1,就可以把后面所以的am求出,也就是说,我们可以用a0,a1,去表示an。#include #include using namespace std;int main(){ int t,t_cnt=0; scanf("%d",&t);原创 2011-10-30 20:48:22 · 1341 阅读 · 0 评论 -
uva 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes?
题意:给你一个长度n,问n*n的矩形里有几个正方形s2,有几个长方形q2,n*n*n里有几个正方体s3,有几个长方体r3...边长为1的正方形有n*n个,边长为2的正方形有(n-1)*(n-1)个。。。。矩形,边长为1的边长有n个可能位置,边长为2的边长有n-1个可能位置,所以矩形所有可能边长个数是n(1+n)/2,从中选出两个组成就可以组成一个矩形。长方形个数用矩形个数减去正方形个数原创 2011-10-30 20:25:33 · 811 阅读 · 0 评论 -
uva 10970 Big Chocolate
题意:给你一块n*m的矩阵,要你求出要切多少刀才能把它们切成n*m个单位为1的小矩阵。当你把一个矩形切成两半之后,你要分别对两块进行切割,不能一刀切两个矩形。先切n-1刀,把它切成n块,再对每块切m-1刀。#include #include using namespace std;int main(){ int n,m; while(scanf("%d%d",&原创 2011-10-30 20:29:40 · 909 阅读 · 0 评论 -
uva 846 Steps
题意: 有t组测试数据。要求为最少步得到给出的整数n。步长要求为:起步和停止的步长为一,每次只能在上次的基础上增加一,减少一或者不变。#include #include #include #include using namespace std;const int N=700000;#define LL long long#define INF ((LL)1<<31)LL a[原创 2011-12-02 23:16:47 · 1123 阅读 · 0 评论 -
uva 10916 Factstone Benchmark
题意:给你一个年份y,1960取对数。#include #include #include #include using namespace std;const int N=30;int a[N];int main(){ int cnt=1,num=0,k=4; double sum=0; for(int i=0;i<25;i++,k*=2)原创 2011-12-03 00:05:38 · 1052 阅读 · 0 评论 -
uva 113 Power of Cryptography
题意:给出n和p,求k,使得k^n=p;#include #include #include using namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { double m; scanf("%lf",&m); printf("%d\n",(原创 2011-12-01 22:13:29 · 699 阅读 · 0 评论 -
ZOJ 3626 Treasure Hunt I(树型DP+01背包)
题意:给一棵有n个结点的树,每个点有点权表示在这个点上的价值,每条边有边权表示走这条路所需要的时候,给一个时间m,问在时间m从点k出发再回到点k所能得到的最大的价值和。#include #include #include using namespace std;const int N=105;int n,m,k;int data[N],head[N],tot;int dp[N][原创 2012-08-06 11:47:37 · 1106 阅读 · 0 评论 -
UVA 12393 Non-negative Partial Sums
题意:给定一个长n的循环队列(n=0;(0我们把原始序列扩充成2*n个数,如果在长度为n的子序列中,最小的和仍然大于开端的和,那么是满足条件的。用一个单调队列保存在长度为n的子序列中的递增的和。#include #include #include using namespace std;const int N=2000005;int sum[N],que[N];int main原创 2012-08-06 11:43:31 · 1325 阅读 · 0 评论 -
uva 107 The Cat in the Hat
题意:给你一个数x,你将它除以(n+1)若干次后(m次),将得到k个1,给你这个数x,问最后在这个过程中,这些数中,不是1的数有多少个,这些数的总和是多少。关键是得出n。可以得出一个等式log(x)*log(n)=log(k)*log(n+1)。#include #include #include #include using namespace std;#define eps原创 2011-12-02 20:44:40 · 805 阅读 · 0 评论 -
uva 10025 The ? 1 ? 2 ? ... ? n = k problem
题意:有t个数,对于每个数n,要你求出一个最小的k使得-1+(-)2+(-)3+(-).....k=n。求出a[i]为i的前i项和。当我们把每一个加号变成减号的时候,都是减去一个偶数的。易得,从a[i]到-a[i]的每隔2的点都可以得到。那么我们只要找出一个前n项和大于等于这个数的数,然后判断,两数相减后是否为偶数即可。#include #include #include usi原创 2011-12-02 17:19:23 · 1324 阅读 · 0 评论 -
uva 573 The Snail
题意:有给测试数据,H,U,D,F。H表示墙的高度,U表示白天能爬多少,D表示晚上下降多少,F表示疲劳程序(表示每天爬的高度都会减少H*F%)。注意,蜗牛是不会往下爬的,白天能爬的距离小于0,那么它是会保持原来的高度,然后晚上下降D。要求输出,在第几天爬出,或者在第几天掉回原点。数据的范围都在100内。直接模拟了,不过注意,回到原点,是高度小于0。#include #include原创 2011-12-02 22:11:09 · 1377 阅读 · 0 评论 -
uva 253 Cube painting
题意:两个六边形,第一个六边形由前6个字符表示,后一个六边形由后6个字符表示。问第一个六边形与第二个六边形是否相同(可以旋转)。(位置的编号见题目)把每个面旋转到第一个面,然后第一个面与它对应的面不动再进行四次旋转,判断。#include #include #include using namespace std;const int N=20;char str[N],str1[N原创 2011-12-02 16:20:26 · 5104 阅读 · 11 评论 -
uva 10161 Ant on a Chessboard
题意:给你一个足够大的棋盘,有一只蚂蚁按照一定的方式走,问你在时间t,它的坐标是多少。走的方式是,一上,一右,一下,一右,二上,二左。。。。如果我们从对角线看呢,1 3 7 13 21公差是1 2 4 6 8 首项为1,公差为2的等差数列的前n项和。首先找出对应的位置,用Lower_bound()找出的是位置pos,但是可能的位置是pos,pos-1,判断是这两个位置的哪一个,然后分奇数偶原创 2011-12-02 13:47:57 · 1252 阅读 · 0 评论 -
uva 123 Searching Quickly
题意:给你些要忽略的单词,然后给你几个句子,找出非忽略单词,然后按照非忽略单词的字典序输出非忽略单词所在的句子,注意,非忽略单词要大写民,其他单词要小写,如果一个句子中出现多个非忽略单词,先输出左边的,再输出右边的。感觉做得比较麻烦,把句子拆成单词,先找出非忽略单词,然后再用原创 2011-09-24 13:20:47 · 1209 阅读 · 0 评论 -
uva 10194 Football (aka Soccer)
题意:给你比赛的情况,要你给出一个排名,排名先按积分高低,赢的次数多寡,赢的球减去输的球的值的高低,赢的球的多寡,打的比赛最少,最后按字典序输出(这里特别注意是不区间大小写的)。#include #include #include #include #includ原创 2011-09-23 16:16:52 · 1024 阅读 · 0 评论 -
uva 409 Excuses, Excuses!
题意:给你一系列的关键单词,然后给你几个借口,要你找出含有关键单词最多借口,如果有多个,可以按任意顺序输出。#include #include #include using namespace std;struct node{ char str[100]原创 2011-09-19 22:43:50 · 724 阅读 · 0 评论 -
uva 10815 Andy's First Dictionary
题意:给你数个字符串,要你把字符串中的所以出现单词,不重复的按字典序输出。#include #include #include #include #include using namespace std;int main(){ char word[1000]原创 2011-09-19 23:20:48 · 489 阅读 · 0 评论 -
uva 644 Immediate Decodability
题意:给你一些串,要你判断是否存在一个串是另一个串的前缀。#include #include #include #include using namespace std;char str[100][100];int cmp(const void *a,cons原创 2011-09-20 13:39:09 · 449 阅读 · 0 评论 -
uva 10474 Where is the Marble?
题意:给你n个数字,然后查询m个数字在n个数字排序后的位置。#include #include #include #include using namespace std;const int N=10005;int a[N];int main(){ i原创 2011-09-20 22:25:34 · 450 阅读 · 0 评论 -
uva 10420 List of Conquests
题意:给你N个串,每个串的第一个单词表示国家,后面的M单词(M>=1)表示女人,要你找出每个国家出现了几个女人。用STL的map将国家映射成数字,然后再放到set里。#include #include #include #include #include #in原创 2011-09-20 22:10:56 · 455 阅读 · 0 评论 -
uva 401 - Palindromes
题目大意:给你一个串要你判断,从左到右读和从右到左读是否相同( regular palindrome ),把这个串根据题目中给出的对应关系是否也满足前面的条件(mirrored string),是否同时满足前面两个条件(mirrored palindrome)。直接用st原创 2011-09-19 16:57:15 · 479 阅读 · 0 评论 -
uva 10361 Automatic Poetry
题意:给你两个串,要你把第一个串中的第一个的内容在第二个串的...部分交换输出。#include #include #include #include using namespace std;char str[1000];int main(){ in原创 2011-09-19 18:31:31 · 596 阅读 · 0 评论 -
uva 537 Artificial Intelligence?
题意:给你一个串,然后在p,u,i中任意出现两个,然后你要根据出现的那两个值,计算出第三个值,注意后面可以跟了三种单位。#include #include #include using namespace std;char str[1000];double fu原创 2011-09-19 22:11:51 · 745 阅读 · 0 评论 -
uva 10010 Where's Waldorf?
题意;给你一个字符串数组,然后给你几个字符串,要你找出这几个字符串在字符串数组中出现的位置。如果有多个重要的,输出最左边的,如果还是有重复的输出最上面的。特别注意要要求的输出格式就行了#include #include #include using na原创 2011-09-19 17:59:29 · 950 阅读 · 0 评论 -
UVALive 4727
约瑟夫环的问题。题目给你n,k。n即约瑟夫环的长度,k是淘汰掉从当前开始数的第k个人,然后问你被淘汰的最后三个人是谁。 逆向思维。如果某个人A是最后被淘汰掉的,当最后只剩下一个 人(即A)时,A一定是在0位置(我们从0位置开始,方便取余运算)。那么当只剩下两个人时,A原创 2011-08-19 00:08:45 · 935 阅读 · 0 评论 -
uva 340 Master-Mind Hints
题意:题目给出一个目标串,然后附后给出几个串(只由1到9构成),要你找出,位置相同且数字相同的有多少个(即strong),位置不同,但数字相同的有多少个(即weak)。注意每个数字只有用一次。因为只有1到9所以开两个数字,找出每个数字出现了多少次,然后两个数组对比,每次取小的原创 2011-09-20 22:11:23 · 400 阅读 · 0 评论 -
uva 400 Unix ls
题意:给你一堆文件名,要你以列优先输出,每个文件名的长度是最大的那个文件名的长度(也就是是长度不够的,你要在它后面加些空格),且同一行的两个文件名之间还要有两个空格。#include #include #include #include using namespace原创 2011-09-24 13:54:24 · 1242 阅读 · 0 评论 -
uva 755 487--3279
题意:给你字母对应的数字,和包含字母与数字的字符串,要你把它们转化成标准格式(即只包含数字且数字中间含‘-’),然后输出有重复出来的,且输出它们的重复次数。要注意的是,可以出现全部是0的字符串,还有边界的处理也要小心(比较最后一个和倒数第二个也相同的情况)。#includ原创 2011-09-22 23:53:24 · 756 阅读 · 0 评论 -
uva 10785 The Mad Numerologist
题意:题目给了每个字母权值,然后给你所要的字符串的长度,要你输出一个权值最小的,并规定奇数位上只能是辅音字母,偶数位上只能是原音字母,然后比较坑人的是,在保证权值最小的情况下,还要字典序最小。#include #include #include #include us原创 2011-09-22 23:11:25 · 824 阅读 · 0 评论 -
uva 156 Ananagrams
题意:要你找出这样的单词,单词里面的字母不区分大小写,然后字母重排之后只出现一次的单词,找出之后,还是输入的样子以字典序输出(用来存放单词的个数起先用100WA了,开到1000AC。。。)#include #include #include #include原创 2011-09-22 01:00:36 · 981 阅读 · 0 评论 -
uva 120 Stacks of Flapjacks
题意:给你一串数字,按照一个规则从小到大排序,规则是:你只能选择一个位置,然后把这个位置以上的全部数字反过来。先排序,然后从后往前扫,如果不是排序后的位置,则往前找,找到了,如果不是在0位置,那么,把它先翻到0位置,然后再翻回来。#include #include #原创 2011-09-21 23:57:07 · 1178 阅读 · 0 评论 -
uva 299 Train Swapping
题意:计算逆序对的个数。#include #include #include using namespace std;int a[60];int main(){ int t; scanf("%d",&t); while(t--) {原创 2011-09-20 22:45:12 · 614 阅读 · 0 评论 -
uva 152 Tree's a Crowd
题意:给你空间中的几个点,要你找出与当前点距离最小的点(幸好题意数据量不太大。。)#include #include #include #include using namespace std;struct node{ double a,b,c;}tre原创 2011-09-20 22:38:40 · 710 阅读 · 0 评论 -
uva 10115 Automatic Editing
题意:给你一个字符串str1与替代其的字符串str2,然后给你一个串A,然后要你把A中出现str1的全部用str2替换,替换的方法是如果出现的一个马上替换,然后再从头找起,如果在串A中找不到当前的str1了,再换下一个str1。#include #include #i原创 2011-09-20 16:51:44 · 436 阅读 · 0 评论