uva解题报告
文章平均质量分 75
AC_Arthur
Die luft der Freiheit weht
展开
-
score
#include#include#define maxn 1001char s[maxn][maxn];int a[maxn];int main(){ int T,i,j,n,c=1; scanf("%d",&T); for(i=0;i { scanf("%s",s[i]); for(j=0原创 2014-11-14 18:31:31 · 685 阅读 · 0 评论 -
Digit counting
#includeint sw(int x,int *p){ switch(x) { case 0:*p+=1;break; case 1:*(p+1)+=1;break; case 2:*(p+2)+=1;break; case 3:*(p+3)+=1;break; case 4:原创 2014-11-14 21:25:33 · 740 阅读 · 0 评论 -
Molar mass
#include#includeint main(){ char a[5000][100];double f[5000]={0}; int T,i,j,b,t,d; double e; scanf("%d",&T); for(j=0;j { scanf("%s",a[j]);原创 2014-11-15 18:54:30 · 735 阅读 · 0 评论 -
all in all
#include#includechar s[100000],t[100000];int main(){ int i,e=0; memset(s,0,sizeof(s)); memset(t,0,sizeof(t)); while(scanf("%s%s",s,t)!=EOF) { for(i=0;i原创 2014-11-21 19:11:23 · 687 阅读 · 0 评论 -
1368 - DNA Consensus String
#include#includechar s[100][2000];int main(){ int N,j,m,n,i,e,q; char p; scanf("%d",&N); for(e=0;e { scanf("%d%d",&m,&n); int A=0,T原创 2014-11-28 20:32:02 · 1016 阅读 · 0 评论 -
1588 - Kickdown
很多错误是意想不到的。。。这就需要我们掌握多种调试的方法在一些地方设置printf()是个很好的选择,通过观察输出数据,你就能看出错误,有的题很简单,一旦第一遍敲错,很难用眼睛看出错误的~这题很简单#include#includeint juedui(int a,int b){ if(a>b) return a; else原创 2015-01-27 10:29:09 · 972 阅读 · 0 评论 -
232 - Repeating Decimals
只有明白一点,这就是水题。。。那就是:只要余数出现重复,则循环节出现;#include#includeint a[4000],b[4000];int main(){ int i,j,k,t,m,n; while(scanf("%d%d",&m,&n)!=EOF) { int m1,n1,start,maxn=0;原创 2015-01-28 11:27:29 · 635 阅读 · 0 评论 -
232 - Crossword Answers
水题,注意各组数据之间一个空行,前后没有空行#include#includechar s[20][20];int b[20][20];int a[20][20];int main(){ int r,c,i,j,k,n,maxn=1,ens=0; while(scanf("%d",&r)!=EOF&&r) { sca原创 2015-01-28 16:07:09 · 676 阅读 · 0 评论 -
253 - Cube painting
这个题我只能打表了。。。不过我提交之后发现有漏洞。。正该着,一看AC了~~~漏洞我就不说了#include#includechar a[20],b[20];int main(){ int i,j; while(scanf("%s",a)!=EOF) { b[1]=a[0]; b[2]=a[1];原创 2015-01-26 14:17:24 · 574 阅读 · 0 评论 -
512 - Spreadsheet Tracking
出了很多意想不到的问题和错误,再次让我意识到调试能力的重要性。#include#include#include#define BIF 10000int a[75][75],s[75][75];int r,c;char ans[5];int bbs[100];int cmp(const void *a ,const void *b){ return原创 2015-01-29 09:01:15 · 718 阅读 · 0 评论 -
12108 - Extraordinarily Tired Students
水题一遍A,不过要注意一下每个同学临睡前的情况,根据样例就能知道,好好研究样例即可。#include#includeint a[15][10],n;int b[20];int main(){ int T=1,i,j; while(scanf("%d",&n)!=EOF&&n) { memset(a,0,sizeof(a));原创 2015-01-30 07:50:15 · 478 阅读 · 0 评论 -
1339 - Ancient Cipher
#include#includechar a[105];char b[105];int cmp(const void *n,const void *m )//递减排序{ return *(int*)m-*(int*)n;}int main(){ int i; while(scanf("%s",a)!=EOF)原创 2014-12-23 16:48:59 · 706 阅读 · 0 评论 -
489 - Hangman Judge
一遍A,纯水题#include#includechar a[202],b[222];int main(){ int i,j,N,m,n,s; while(scanf("%d",&N)!=EOF) { if(N==-1) return 0; scanf("%s",a);//答案原创 2014-12-23 17:43:25 · 776 阅读 · 0 评论 -
1590 - IP Networks
虽然代码很丑,但是我能AC。。。。#include#includeint a[1200][50];int b[1200][50];void get_bits(int m){ int i,j; memset(b,0,sizeof(b)); for(i=0;i int n,q=0,w=0,e=0,r=0; q=a[i原创 2015-01-31 14:28:47 · 596 阅读 · 0 评论 -
201 - Squares
水题。。。但是有个地方太坑了,就是输入V时的x,y和输入H时是反着的~~~边界倒是没必要太关注,数组开大点就是了~~#include#includeint main(){ int n,m,j,i,k,s=0,q; int h[50][50],v[50][50]; int maxn[29]; while(scanf("%d",&n)!=EOF)原创 2015-01-31 21:24:09 · 541 阅读 · 0 评论 -
133 - The Dole Queue
#include#includeint main(){ int a[30]; int i,N,k,m; while(scanf("%d%d%d",&N,&k,&m)!=EOF) { if(N==0&&k==0&&m==0) return 0; memset(a,0,sizeof(a))原创 2014-12-24 17:03:48 · 636 阅读 · 0 评论 -
1589 - Xiangqi
这题WA了好几次。。第一次写了300行,发现写的太乱,很难查出错误,于是毅然决定重写,按照下棋的思维来模拟结果。所以思路真的很重要,先想好再写也许比直接写更好。下面说说我的思路:需要注意这么几个问题:1.如果红方是用帅来将军,那么红方必输。下面的bisheng这个变量就是解决这个问题的。2.黑方的将可能吃掉红方的棋子。所以我觉得最简单的办法是模拟黑方将的可能移动的情况,然后原创 2015-02-02 19:42:58 · 615 阅读 · 0 评论 -
815 - Flooded!
一般WA都是因为思维不够严密。一开始漏掉了m*n==1的情况和水量非常多的情况(四周是无限高的墙)#include#include#includeint cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int a[2000];int main(){ int i,j,m,原创 2015-02-03 11:39:28 · 582 阅读 · 0 评论 -
1593 - Alignment of Code
这道题最坑的就是每行的最后不能有空格,而且一旦有了空格就是WA。。。受刘汝佳的启发,研究了一下stringstream,感觉很好用,可以将空格忽略掉然后一部分一部分的传给别的字符串。#include#include#include#include#includeusing namespace std;int a[200];string s[1100],s0[11原创 2015-02-08 21:49:12 · 673 阅读 · 0 评论 -
12100 - Printer Queue
很简单的题。。。只要想到用list,一切轻松搞定,第一次用list,感觉针对某些题,还是很好用的~~~#include#include#include#include#include#includeusing namespace std;listq;int main(){ int T; scanf("%d",&T); whil原创 2015-02-07 14:25:01 · 490 阅读 · 0 评论 -
1592 - Database
初学C++。。。代码不是那么优美,速度也不是那么快~~~擦着uva的限制时间过的,仅供参考~~我是将每个字符串映射成一个整数保存在数组里,然后再将二元整数组映射成一个(A串.B串)的形式,我看网上大神都用的结构体,肯定比我这个方法好~~注意映射的时候,没次扫描完一排二元组之后要清空映射。不然会发生这样的情况:这一排二元组和上一排二元组中的某个重复#include#inc原创 2015-02-07 09:13:58 · 547 阅读 · 0 评论 -
10391 - Compound Words
我是对每个单词建立了一个映射,搜索一遍,对每个单词进行拆分,对拆分成的两个单词用p.count()看看是否在映射中。如果在,输出这个单词;#include#include#include#include#includeusing namespace std;string s[120000];string s1,s2;map p;int main(){原创 2015-02-08 14:31:15 · 483 阅读 · 0 评论 -
10763 - Foreign Exchange
只用了这么几行就AC了,我也是醉了~~,这个方法纯属突发奇想,也不知道有没有漏洞,反正是过了uva的测试数据了。方法就是将每行的第一个数存进a[],第二个数存进b[] ,将他们排序后比较,一旦有不一样的就输出NO!#include#include#include#includeusing namespace std;mapq;mapp;int a[50原创 2015-02-08 09:15:15 · 522 阅读 · 0 评论 -
230 - Borrowers
这道题有一个需要注意的地方:题中所说的放回书时该书前面的书到底是什么。答案是:现在有的那本排在他前面的书。该题uva上有测试数据(瓢虫),可以参考~~#include#include#include#include#include#include#include#include#includeusing namespace std;map p;原创 2015-02-09 13:32:09 · 551 阅读 · 0 评论 -
12504 - Updating a Dictionary
按题目说的来,也没合并情况,看起来有点瘦长。。大家凑合看吧~~一开始忘了加入空集的情况,后来又加的。。。#include#include#include#includeusing namespace std;int main(){ int T; scanf("%d",&T); while(T--){ string buf,s1[1原创 2015-02-09 18:35:03 · 533 阅读 · 0 评论 -
814 - The Letter Carrier's Rounds
#include#include#include#include#includeusing namespace std;void parse_address(const string& s, string &user,string &mta) { int k = s.find('@'); user = s.substr(0,k); mta=s.substr(k+原创 2015-02-21 22:02:12 · 946 阅读 · 0 评论 -
210 - Concurrency Simulator
用wait_q表示等待队列,prevent_q表示阻止队列,用映射p来给出变量值,用队列q[100]来记录所有语句(语句的执行也符合先进先出)要注意:1.即使时间到了,也会执行完正在执行的程序。2.阻止队列可能为空,这个时候如果向外取元素就会运行出错。3.执行end,lock,unlock时要注意有可能存在特殊情况。#include#include#include#in原创 2015-02-10 17:32:55 · 573 阅读 · 0 评论 -
1103 - Ancient Messages.
一转眼寒假已经块结束了,我也进行到数据结构了,初学图,可能是由于很多人说数据结构多么多么难,导致自己有点畏难,而且毕竟要赶题数,有点急功近利,树那里的有些例题还没有完全搞懂就提交了。 其实现在我才明白,我要做的不是老看着题数,而是感受编程的乐趣,其实我还是很喜欢这个的,这就够了,也是我会继续做下去的唯一动力。和一群志同道合的人做自己最喜欢的事情,还有什么比这个更快乐的吗? 废话不多说原创 2015-02-25 15:16:45 · 776 阅读 · 0 评论 -
10305 - Ordering Tasks(拓扑排序)
经典的拓扑排序。注意m可以为0。另外紫书上的代码有错误。。。它的toposort()和dfs()里的u和v都是从0开始的,显然不对。。应该是for(int u=1;u#include#include#include#includeusing namespace std;const int maxn = 100+9;int c[maxn],topo[maxn],t,n,m,G[m原创 2015-02-26 16:41:17 · 812 阅读 · 0 评论 -
11059 - Maximum Product
注意一个数字的情况也算。 uva上有测试数据,可以参考。#include#include#include#includeusing namespace std;int a[50];int main(){ int N,kase=1; while(scanf("%d",&N)!=EOF){ for(int i=1;i原创 2015-02-12 11:59:02 · 626 阅读 · 0 评论 -
725 - Division
暴力。。注意清空数组a#include#includeusing namespace std;int a[20];int main(){ int N,L=0; while(scanf("%d",&N)!=EOF&&N){ int maxn=0; if(L) printf("\n"); L=1; for(i原创 2015-02-12 09:07:52 · 554 阅读 · 0 评论 -
816 - Abbott's Revenge(BFS)
第一道BFS题,对BFS有了个初步的了解。初学数据结构,只做紫书上的题还不够,打算等下去别的OJ上自主完成一些简单的BFS题来强化一下。#includeusing namespace std;const char* dirs = "NESW";const char* turns = "FLR";int r0,c0,dir,r1,c1,r2,c2,has_edge[19][19][10]原创 2015-02-25 20:41:56 · 673 阅读 · 0 评论 -
122 - Trees on the level
学到很多,虽然还不能完全领悟,不过以后在做题中再慢慢消化吧~#include#include#include#include#includeusing namespace std;const int maxn = 300;bool failed;char s[maxn];struct Node { bool have_value; int原创 2015-02-12 18:17:46 · 644 阅读 · 0 评论 -
10562 - Undraw the Trees(多叉树的深度搜索)
用DFS深度搜索树。#includeusing namespace std;const int maxn = 200+10;int n;char buf[maxn][maxn];void dfs(int r,int c) { printf("%c(",buf[r][c]); if(r+1<n&&buf[r+1][c]=='|'){ int i=c;原创 2015-02-28 14:28:39 · 752 阅读 · 0 评论 -
253 - Cube painting
虽然在UVA上AC了,但是我觉得我写 的这个有漏洞。。。#include#includechar a[20],b[20];int main(){ int i,j; while(scanf("%s",a)!=EOF) { b[1]=a[0]; b[2]=a[1]; b[3]=a[2原创 2015-01-26 14:28:01 · 528 阅读 · 0 评论 -
10976 - Fractions Again?!
注意:利用公式求出的x可能不是整数,要判断一下。#include#includeusing namespace std;int a[10000];int b[10000];int main(){ int k; while(scanf("%d",&k)!=EOF){ int maxn=0; memset(原创 2015-02-12 13:49:55 · 574 阅读 · 0 评论 -
536 - Tree Recovery(二叉树遍历)
已知二叉树的的先序和中序遍历,求后序遍历。#includeusing namespace std;const int maxn=50;int lch[maxn],rch[maxn];char in_order[maxn],pre_order[maxn];void build(int L1, int R1,int L2,int R2) { if(L1>R1) return原创 2015-03-01 20:49:54 · 776 阅读 · 0 评论 -
12325 - Zombie's Treasure Chest.
简单枚举+巧妙躲避大枚举量#includeusing namespace std;long long n,s1,v1,s2,v2,total;int main() { ios::sync_with_stdio(false); long long T,maxn=0; cin>>T; while(T--) { cin>>n>>s1>>v1>>s原创 2015-03-15 17:23:15 · 814 阅读 · 0 评论 -
10491 - Cows and Cars
注意a,b,c最好为double型,不然就隐式转换。#includeusing namespace std;double a,b,c;int main() { while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF) { double t; t=(a*b+b*(b-1))/((a+b)*(a+b-c-1));原创 2015-03-25 16:48:04 · 822 阅读 · 0 评论 -
11346 - Probability
不知道为什么,用刘如佳给的公式老是WA,估计是m很小时出现了错误。 用了另一个公式就行了。。#includeusing namespace std;int main() { int T; cin>>T; while(T--) { double a,b,s,p; cin>>a>>b>>s; if(s>=a*b) p=0;原创 2015-03-02 21:44:46 · 639 阅读 · 0 评论