zoj
Wss0130
这个作者很懒,什么都没留下…
展开
-
ZOJ 2971 Give Me the Number
刚做的时候,思路错误,结果一直无法得到正确输出,在网上看了一下别人的代码,其实方法很简单。。。把0,1,2,。。。。20,30,。。90存到一个数组里,n1,n2,n3代表每三位的数,刚开始自动匹配,n3开始计算,遇到million,thousand,hundred,再乘以10^n最后把n1,n2,n3加在一起就是所求结果。#include#include#includec原创 2013-05-05 23:54:19 · 553 阅读 · 0 评论 -
ZOJ 1295 Reverse Text
很简单的字符串逆序问题。。。#include #includeint main(){ int i,n,l; char s[100]; while(scanf("%d",&n)!=EOF) { getchar(); while(n--){ gets(s); l=strlen(s); for(i=l-1;i>=0;i--){原创 2012-09-08 16:12:08 · 375 阅读 · 0 评论 -
HDU 1200 || ZOJ 2208 To and Fro
#include#includeint main(){ int i,j,len,c,row; char s[200],str[200][200]; while(scanf("%d",&c)!=EOF && c){ scanf("%s",s); len=strlen(s); row=len/c;原创 2012-09-07 19:34:27 · 608 阅读 · 0 评论 -
ZOJ 3023 Equal Total Scores
#include#define MAX 0x7fffffffint main(){ int i,j,t1,t2,s1,s2,f,s,m,n,flag,min; int a[1000],b[1000]; while(scanf("%d%d",&n,&m)!=EOF) { if(m==0&&n==0) break; s1=0; s2=0; flag=0; t1=原创 2012-09-09 15:55:05 · 478 阅读 · 0 评论 -
ZOJ 3174 Square Root Day
#includeint main(){ int i,j,n,sum,a,b; int y[20]; while(scanf("%d",&n)!=EOF) { while(n--){ scanf("%d%d",&a,&b); sum=0; for(i=1;i y[i]=i*i; } for(i=a;i原创 2012-09-09 15:32:48 · 495 阅读 · 0 评论 -
ZOJ 2830 Champion of the Swordsmanship
很明显一场淘汰掉两个,因此一共有 N/2 场。#includeint main(){ int n; while(scanf("%d",&n)!=EOF && n) { printf("%d\n",n/2); }}原创 2012-09-09 16:27:46 · 747 阅读 · 0 评论 -
ZOJ 2850 Beautiful Meadow
一定要看清楚条件,因为没看清条件,wa了好多次啊!#includeint main(){ int i,j,m,n,f,flag; int a[15][15]; while(scanf("%d%d",&n,&m)!=EOF,n,m) { f=0; flag=0; for(i=0;i for(j=0;j scanf("%d",&a[原创 2012-09-09 16:20:39 · 487 阅读 · 0 评论 -
ZOJ 3210 A Stack or A Queue
#includeint main(){ int i,j,n,m,f1,f2; int a[1000],b[1000]; while(scanf("%d",&n)!=EOF) { while(n--){ scanf("%d",&m); for(i=0;i for(i=0;i f1=0;f2=0; for(i=0,j=m-1;i原创 2012-09-09 14:54:57 · 404 阅读 · 0 评论 -
ZOJ 1095 Humble Numbers
参考别人的,就是输出第n个丑数。。。要先打表,丑数:2、3、5、7的乘积#include #define MAX 2000000000long long a[5842];int cmp(const void * x, const void *y){ if( *(int*)x > *(int*)y ) return 1; else return -1;原创 2012-09-08 13:19:35 · 472 阅读 · 0 评论 -
ZOJ 1352 Number Base Conversion
才发现用java编写大数运算问题,真的是好简单啊!下面的代码是copy别人的,以后要注意java的编写了。。。第一次用java 提交,提交时要注意:必须使用public class Main。。。import java.util.Scanner;import java.math.BigInteger;public class Main { public static原创 2012-09-07 21:50:46 · 640 阅读 · 0 评论 -
ZOJ 3121 Arne Saknussemm
很水的一个字符串处理问题,但是仍然PE了几次。。。一定要按照题目中给出的步骤倒着处理。。。#include#includechar s[1000][1010],t[1010];int main(){ int i,j,k,l,n; while(scanf("%d",&n)!=EOF) { for(i=0;i memset(t,0,sizeof(t原创 2012-09-09 14:42:25 · 426 阅读 · 0 评论 -
ZOJ 3191 Strange Clock
#includeint main(){ int i,d; int c[12]={90,60,30,0,330,300,270,240,210,180,150,120}; while(scanf("%d",&d)!=EOF && d!=-1) { for(i=0;i if(d==c[i]) printf("Exactly %d o'clock\n",i);原创 2012-09-09 15:23:06 · 464 阅读 · 0 评论 -
ZOJ题目分类
简单题#1001 -____-b A+B。#1110 Dick and Jane 胡乱枚举收缩一下情况就可以了。#1115 a[i+1] = a[i] 的全部数位上的加起来,直到剩下一个,直接模拟。#1414 太弱太弱,按照模 4 分类讨论一下即可。#1713 简单的字符串截取和字符计数。#1716 简单的二维数组区间求和,作累加,然后容斥一下;预处理 O(W*H),查询转载 2012-08-18 09:54:04 · 10430 阅读 · 0 评论 -
ZOJ 0-1背包
这个是最简单的0-1背包了,记住这个函数,以后在遇到这种题直接使用就行了。。。 #include#include#define MAX(a,b) (a>b?a:b)int c[13000]; // 注意数组下标 void Zero_One(int cost, int weight, int m)原创 2012-08-11 08:23:22 · 513 阅读 · 0 评论 -
HDU 1080 || ZOJ 1027 Human Gene Functions
分三种情况考虑: 1、s1不是 -,s2是 - dp[i][0] = dp[i - 1][0] + m[x[i]][4]; 2、s1是 -,s2不是 - dp[0][j] = dp[0][j - 1] + m[4][y[j]];原创 2012-09-12 20:42:10 · 483 阅读 · 0 评论 -
HDU 1051 A New Growth Industry
相同的代码,在zoj能ac,在hdu就runtime error 。。。检查之后才发现,zoj中的数组开的太大了。。。#include#includeint main(){ int day,i,j,K,n; int D[22],a[22][22],b[22][22]; scanf("%d",&n); while(n--){原创 2012-09-11 21:39:50 · 668 阅读 · 0 评论 -
ZOJ 1847 The Trip
#include#include int main(){ int n,m1,m2,i; double a[1005],sum,ave,ave1,ave2,ex1,ex2; while(scanf("%d",&n),n){ sum=0; ex1=0; ex2=0; for(i=0;i scanf("%lf",&a[i]);原创 2012-09-10 21:14:02 · 515 阅读 · 0 评论 -
ZOJ 2744 Palindromes
#include#include#include#define Maxn 5010char s[Maxn];int len,num; void check(int l,int r) //中心扩展法 { if(s[l]==s[r]){ num++; while(--l>=0&&++r if(s[l]==s[r]) nu原创 2012-09-10 22:12:20 · 378 阅读 · 0 评论 -
ZOJ 2795 Ambiguous permutations
#includeint a[100005]; int main(){ int i,n,flag; while(scanf("%d",&n)!=EOF&&n) { for(i=1;i flag=0; for(i=1;i if(a[a[i]]!=i){ flag=1; break; } } if(flag==0)原创 2012-09-10 21:38:01 · 403 阅读 · 0 评论 -
ZOJ 2773 Triangular Sums
#includeint main(){ int i,j,m,n,sum; while(scanf("%d",&n)!=EOF) { i=1; while(n--){ sum=0; scanf("%d",&m); for(j=1;j sum+=(j*(j+1)*(j+2))/2; } printf("%d %d %d\原创 2012-09-10 21:37:25 · 437 阅读 · 0 评论 -
HDU 1243 URLs
网址分类问题,根据题目要求分类就行了。。。#include#include #define N 100 int main(){ int n,l,i,j,k,c,t,f1,f2,P2,P1; char s[N],pro[N],por[N],hos[N],pat[N]; while(scanf("%d",&n)!=EOF) { for(i=1;i原创 2012-09-08 15:45:25 · 649 阅读 · 0 评论 -
HDU 1335 || ZOJ 1334 Basically Speaking
#include#define MAX 0x7FFFFFFFint x,sum,len,m,n,i,j;int a[100]; char s[100];void TenTo(char* s, int sum,int n){ i=0; while(sum) { a[i]=sum%n; sum/=n;原创 2012-09-06 22:37:21 · 690 阅读 · 0 评论 -
HDU 1337 || ZOJ 1350 The Drunk Jailer
// 注意格式的强制类型转换#include#includeint main(){ int m,n; scanf("%d",&n); while(n--) { scanf("%d",&m); printf("%d\n",(int)sqrt(m)); } return 0;原创 2012-09-06 22:35:01 · 398 阅读 · 0 评论 -
HDU 1390 || ZOJ 1383 Binary Numbers
#includevoid binary(int n){ int p=0; while(n){ if(n%2==1 && n/2!=0) printf("%d ",p); else if(n/2==0){ printf("%d\n",p--); break;原创 2012-09-06 22:15:36 · 598 阅读 · 0 评论 -
ZOJ2478 Encoding
很水的一道题,不过读题还是要仔细哦!要注意的是:不是把相同的字符加在一起输出,而是输出连续的相同字符的个数。因为没注意,结果WA了一次。。。#include#includeint main(){ int i,j,l,n,t,num; char s[105]; while(scanf("%d",&n)!=EOF) { while(n--){原创 2012-08-15 15:24:31 · 467 阅读 · 0 评论 -
ZOJ 2658 Ancient Cipher
还是那句话,理解题意之后,一切都好办了。。。解题思路:假设所有 A~Z 的字母统计数序列为 C[k],对 C[k] 排序,两个序列是 YES 的充要条件是已排序C[k] 和 C'[k] 完全相同。#include#includeint cmp(const void *a,const void *b){ return *(int*)a-*(int *)b;原创 2012-08-08 20:43:23 · 731 阅读 · 0 评论 -
ZOJ 1110 Dick and Jane
根据题意: (a-b==s || a-b==s+1) && (b-c==p || b-c==p+1) && (a-c==y || a-c==y+1)#include#includeint main() { int s,p,y,j,a,b,c; int flag; while(scanf("%d%d%d%d",&s,&p,&y,&j)原创 2012-08-09 16:43:06 · 573 阅读 · 0 评论 -
ZOJ 1076 Gene Assembly
有人说这个是最长上升子序列,但是我没有发现。。。就是找出最长不交叉的DNA片段的序号,只是按照基本的动态规划写了一下。。。#include#include#include#define N 1005int a[N];struct gene{ int start; int end; int pos; }g[N];int cmp(const voi原创 2012-08-14 16:17:04 · 607 阅读 · 0 评论 -
ZOJ 1292 大数相加
这是我自己写的大数相加的代码,看起来有些长,不过胜在好理解。。。#include#include#includevoid reverse(char *s) { int i,j,len; char temp; len=strlen(s); for(i=0,j=len-1;i temp=s[i];原创 2012-08-11 08:30:43 · 708 阅读 · 0 评论 -
ZOJ 1051 A New Growth Industry
没看懂意思的时候,感觉很难。一旦理解了,那就是水题嘛!其实就是细菌感染问题。。。#include#includeint main(){ int day,i,j,K,n; int D[500],a[500][500],b[500][500]; scanf("%d",&n); while(n--){ scanf("%d",&da原创 2012-08-08 19:51:33 · 674 阅读 · 0 评论 -
ZOJ 3129 Japan
题意叫你求交叉点的个数,转换一下思维,把第一个数看作是i,和它相连接的第二个数看作是ai,当i aj时这时才有交叉点,这样就转换为求逆序对的个数;首先,把他x从小到大排序,x相同的按y从大到小排序,排完序后,在使用合并排序,计算逆序对的个数。#include#include#include#define MAX 1000005 int L[MAX/2],R[MAX/2原创 2012-08-09 15:59:47 · 577 阅读 · 0 评论 -
ZOJ 2386 归并排序
这个是归并排序很好例子,下面的代码可以记住,以后碰到归并,可以直接使用了。。。#include #include #include #include // INT_MAX #include #define MAX 500010int a[MAX];int L[MAX/2],R[MAX/2];long long sum;void MERGE(int原创 2012-08-11 08:35:00 · 506 阅读 · 0 评论 -
ZOJ 1093 Monkey and Banana
这是一个动态规划题目,不是太难,只要理解动态规划思想就可以做出来。。。#include#includestruct node{ int x; int y; int z; int s; }S[100];int high[100];int cmp(const void *a,const void *b){原创 2012-08-10 11:38:33 · 543 阅读 · 0 评论 -
ZOJ2482 IP ADDRESS
很水的一题,不用多说了。。。#include#include#includeint main(){ int i,j,n,num[4]; char p[50],s[50]; while(scanf("%d",&n)!=EOF) { while(n--){ scanf("%s",s); for(i=31,j=0;i>=0,j原创 2012-08-15 15:43:03 · 454 阅读 · 0 评论 -
ZOJ 2514Generate Passwords
一个字形容: 水。。。#include#includechar name[1000][100],pass[1000][100];int main(){ int i,l,n,k,num,flag[1000]; while(scanf("%d",&n)!=EOF && n) { num=0; for(k=0;k flag[k]=0;原创 2012-08-15 16:06:02 · 452 阅读 · 0 评论 -
HDU 1339 || ZOJ 1382 A Simple Task
同样的代码在zoj中ac了,但是hdu就不行。。。只好写了两个。。。ZOJ:#include int main() { int i,d,num[10],m[10][2],o,p,mid; scanf("%d",&d); for(i=0;i<d;i++) scanf("%d",&num[i]);原创 2012-09-06 22:29:47 · 912 阅读 · 0 评论 -
HDU 1065 || ZOJ 1049 I Think I Need a Houseboat
注意格式输入,和强制类型转换#include#define PI 3.1415926 int main(){ int i=1,n,years; double r,x,y; scanf("%d",&n); while(n--) { scanf("%lf%lf",&x,&y); years=(int)((x原创 2012-09-02 14:46:56 · 417 阅读 · 0 评论 -
HDU 1047 || ZOJ 1292 大数相加
同样的代码在zoj AC了,但是hoj里不是WA就是TLE。。。让同学修改了一下,发现少考虑了一种情况。。。例: 1000000输出: 0#include#include#define L 110int main(){ char s[L]; int N,i,j,len,f,sum[L]; scan原创 2012-08-20 09:47:54 · 460 阅读 · 1 评论 -
ZOJ 1101 Gamblers
刚看到这道题,很自然的想到了三重循环,但是时间复杂度很大,显然超时。。。假设 d = x + y + z , z转换成 x + y = d - z ,再 查找x、y、d、z的下标(各不相等)。这样就不会超时了这里查找的时候最好使用二分查找。。。 #include #include #include int p[1010];struct node{ int x原创 2012-08-18 08:24:55 · 411 阅读 · 0 评论 -
ZOJ 1745 Are We There Yet?
很纠结的一道题,要注意:这里是一次输入,一次输出。。。因为没注意,找不到错误,WA了几次。。。#include#includeint main(){ int i,t[100],a[100],j,k,p[100][100]; j=0; while(scanf("%d",&t[j])!=EOF) { if(t[j]==5280) break; i=0;原创 2012-08-16 16:20:54 · 409 阅读 · 0 评论