
NYOJ
AliceGreek
活出自己想要的模样。
展开
-
nyoj21三个水杯
三个水杯时间限制:1000 ms | 内存限制:65535 KB难度:4描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。输入第一行一个整数N(0<N<50)表示N组测试数据接下来每组测试数据有两行,第一行给出三个整数V...原创 2016-03-18 16:18:41 · 913 阅读 · 0 评论 -
nyoj891找点
#include<stdio.h>#include<algorithm>using namespace std;struct ch{int s,e;}a[101];bool cmp(struct ch a,struct ch b){if(a.e != b.e) return a.e > b.e;else return a.s > b.s;}int main(){...原创 2016-02-12 00:02:45 · 437 阅读 · 0 评论 -
nyoj218
#include #include int Judge(char s[11]) { if(strcmp(s,"bowl") == 0) return 0; else if(strcmp(s,"knife") == 0) return 1; else if(strcmp(s,"fork") == 0) return 2; else if(strcmp(s,"chopsticks") =原创 2016-02-10 16:49:07 · 395 阅读 · 0 评论 -
nyoj811变态最大值
#include #include using namespace std; int main() { int n,a[3]; int cmp[3334]; while(scanf("%d",&n) != EOF) { for(int i = 1;i { getchar(); scanf("%d %d %d",&a[0],&a[1],&a[2]); if(i%2 !=原创 2016-02-06 23:07:53 · 544 阅读 · 0 评论 -
nyoj779兰州烧饼
#include int main() { int n,k,minutes; while(scanf("%d %d",&n,&k) == 2) { if(n else { minutes = n * 2 / k; if(n*2%k == 0) printf("%d\n",minutes); else printf("%d\n",minutes+1); } } re原创 2016-02-06 20:37:53 · 510 阅读 · 0 评论 -
nyoj733圣诞派对
#include #include int b[7]; int Judge(int a) { int i,j; for(i = 0;a;i++) { b[5-i] = a%10 ; if(b[5-i] > 6) return 0; a /= 10; } while(i b[6] = 7; for(i = 1;i { if(b[i-1] == b[i] && b[原创 2016-02-06 18:02:05 · 410 阅读 · 0 评论 -
nyoj484The famouse clock
#include #include int main() { char ch[5]; int i = 0; while(scanf("%s",&ch) != EOF) { i++; int len = strlen(ch); if(len == 1) { if(strcmp(ch,"I") == 0) printf("Case %d: 1\n",i); else if(原创 2016-02-06 13:57:12 · 330 阅读 · 0 评论 -
nyoj477 A+B=C
#include #include int main() { int n; double a,b,c; scanf("%d",&n); while(n--) { scanf("%lf %lf %lf",&a,&b,&c); if(fabs(c-a-b) else printf("No\n"); } return 0; } 这个题很坑啊,是浮点数陷阱。 还有就是求浮原创 2016-02-05 21:32:47 · 431 阅读 · 0 评论 -
nyoj458小光棍数
#include int main() { int n; long long m; scanf("%d",&n); while(n--) { scanf("%lld",&m); printf("%lld\n",471+1000*(m-1)); } return 0; } 这个题的解法很巧妙,用的是同余定理。原创 2016-02-05 20:31:18 · 401 阅读 · 0 评论 -
nyoj399整除个数
#include int main() { int n,b; while(scanf("%d %d",&n,&b) != EOF) { printf("%d\n",n/b); } return 0; } 这个题其实不难 ,但是有时间限制。所以以上做法比循环法要好的多。 还有就是注意scanf()返回的值是正确匹配的个数。原创 2016-02-05 18:29:01 · 510 阅读 · 0 评论 -
nyoj283对称排序
#include #include #include using namespace std; struct ch{ char s[26]; int len; }str[1000]; bool cmp(struct ch a,struct ch b) { return a.len } int main() { int m; int k = 1; while(sca原创 2016-02-05 16:25:26 · 485 阅读 · 0 评论 -
nyoj264国王的魔镜
先贴上我写的代码: #include #include int count = 0; int repeat(char a[110]) { int length = strlen(a); int end = length; char b[55]; if(length == 1 || (length%2 != 0 && count == 0)) return 1;原创 2016-02-04 17:27:37 · 1064 阅读 · 0 评论 -
nyoj263 精挑细选
#include int main() { int n; scanf("%d",&n); while(n--) { int m,a,b,c; int a1,b1,c1; scanf("%d",&m); scanf("%d %d %d",&a,&b,&c); for(int i = 1;i { scanf("%d %d %d",&a1,&b1,&c1); if(a b原创 2016-02-04 00:04:16 · 1040 阅读 · 0 评论 -
nyoj244
#include int main() { int n; scanf("%d",&n); while(n--) { int a,b,r; char op; scanf("%x%c%x",&a,&op,&b); if(op == '+') { r = a + b; } else { r = a - b; } if(r > 0) { printf("%o\n",原创 2016-01-31 17:48:43 · 444 阅读 · 0 评论 -
nyoj243
#include int main() { int n; while(scanf("%d",&n)&&n!= 0) { int a[110]; int min=100000000,index; for(int i = 0;i { scanf("%d",&a[i]); if(min > a[i]) { min = a[i]; index = i; } } if原创 2016-01-31 17:27:40 · 325 阅读 · 0 评论 -
nyoj242
#include #define PI 3.1415926 int main() { double r; while(scanf("%lf",&r) != EOF) { double v = 4*PI*r*r*r/3; printf("%.0lf\n",v); } return 0; } 心得:要注意四舍五入的方法原创 2016-01-30 22:05:10 · 417 阅读 · 0 评论 -
nyoj204
#include int Gcd(int m,int n) { if(m == 0) return n; return Gcd(n%m,m); } int main(){ int n,unum=0,dnum=0,snum=0; char s[65536]; scanf("%d",&n); scanf("%s",&s); for(int i = 0;i { if(s[i]原创 2016-01-27 19:22:06 · 378 阅读 · 0 评论 -
nyoj168 房间安排问题
#include #include #include using namespace std; struct node{ int num,begin,day; }order; int rooms[210]; int main() { int m,n,i; scanf("%d",&m); while(m--) { memset(rooms,0,sizeof(roo原创 2015-11-16 17:07:04 · 752 阅读 · 0 评论 -
nyoj125
#include #include int main() { int n,m,i,len,count,num,j,sum; char s[15]; scanf("%d",&n); while(n--) { sum = 0; scanf("%d",&m); getchar(); count = 0; for(i = 0;i { gets(s); len = strl原创 2015-11-16 15:45:05 · 500 阅读 · 0 评论 -
nyoj98
#include int main() { int n,a; scanf("%d",&n); while(n--) { scanf("%d",&a); if(a >= 90 && a { printf("A\n"); } else if(a >= 80 && a { printf("B\n"); } else if(a >= 70 && a { print原创 2015-11-13 16:01:24 · 378 阅读 · 0 评论 -
nyoj113 字符串转换
#include #include int main() { int len,i; char a[1000]; while(gets(a)) { len = strlen(a); for(i = 2;i { if(a[i-2] == 'y' && a[i-1] == 'o' && a[i] == 'u') { a[i-2] = 'w'; a[i-1] = 'e';原创 2015-11-13 15:36:29 · 503 阅读 · 0 评论 -
nyoj2括号匹配 STL
#include #include #include char str[10000]; using namespace std; int main() { int n,len,i; scanf("%d",&n); while(n--) { scanf("%s",&str); stacka; a.push(str[0]); len = strlen(str); for(原创 2015-11-13 14:56:32 · 471 阅读 · 0 评论 -
nyoj33蛇形填数
#include int main() { int n,a,i,sum = 1,j; int sn[101][101]; scanf("%d",&n); for(i = 0;i { if(n == 1) { printf("1\n"); return 0; } else { for(a = i;a { sn[a][n-i-1] = sum++; } fo原创 2015-11-08 16:05:44 · 428 阅读 · 0 评论 -
nyoj62笨小熊
#include #include int prime[100]; void Prime() { int i,j; memset(prime,0,sizeof(prime)); for(i = 2;i { if(prime[i]) { continue; } else { for(j = i*i;j { prime[j] = 1; } } } }原创 2015-11-08 14:52:35 · 692 阅读 · 0 评论 -
nyoj60谁获得的奖学金最高
#include struct { char name[20]; int finalGrade; int evaluateScore; char job; char westStu; int thesis; int scholarship; }data[110]; int main() { int n,m,i,sum,max; scanf("%d",&n);原创 2015-11-06 15:42:05 · 516 阅读 · 0 评论 -
nyoj111分数加减法
#include int gcd(int m,int n) { int temp=1; while(temp != 0) { temp = m%n; m = n; n = temp; } return m; } int main() { char s[10]; int a,b,c,d,k1,fm,fz,k2; while(scanf("%s",原创 2015-11-02 14:55:45 · 628 阅读 · 0 评论 -
nyoj74 进位问题
#include int main() { int m,n; while(scanf("%d%d",&m,&n) && (m || n)) { int count = 0; int m1 = m%10; int m2 = m/10%10; int m3 = m/100; int n1 = n%10; int n2 = n/10%10; int n3 = n/100; if原创 2015-11-01 16:20:20 · 484 阅读 · 0 评论 -
nyoj34韩信点兵
#include int main() { int a,b,c,ans; scanf("%d%d%d",&a,&b,&c); ans = (70*a + 21*b + 15*c)%105; if(10 { printf("%d\n",ans); } else { printf("No answer\n"); } return 0; } 此题主要是思路了,只知道三原创 2015-11-01 14:59:05 · 428 阅读 · 0 评论 -
nyoj39水仙花数
#include int main() { int a=1,b,c; while(~scanf("%d",&a) && a != 0) { b = a; c = (b%10)*(b%10)*(b%10)+(b/10%10)*(b/10%10)*(b/10%10)+(b/100)*(b/100)*(b/100); if(c == b) { printf("Yes\n"); }原创 2015-11-01 14:30:44 · 505 阅读 · 0 评论 -
nyoj 75 日期问题
#include int main() { int n,year,month[13],day,inputmonth,total,i;month[0] = 0; month[1] = 31,month[2] = 28,month[3] = 31,month[4] = 30,month[5] = 31,month[6] = 30; month[7] = 31,month[8] = 31,mo原创 2015-10-31 14:33:54 · 381 阅读 · 0 评论 -
nyoj100 1的个数
#include main(){ int n,m,s; scanf("%d",&n); while(n--) { scanf("%d",&m); s=0; while(m) m&=m-1,s++; printf("%d\n",s); } } 以上是最有代码,里面的亮点就是m&=(m-1),m与(m-1)按位与,可以快捷的求出二进制数中1的个数。 其实用一般代码原创 2015-10-30 15:33:36 · 377 阅读 · 0 评论 -
nyoj57 6147问题
最优代码(c++): #include #include #include using namespace std; int main() { //freopen("1.txt","r",stdin); int k; cin>>k; while(k--) { int n,a[4],n1,n2; scanf("%d",&n); int s=1; while(n!=原创 2015-10-29 16:19:22 · 660 阅读 · 0 评论 -
nyoj96
先贴上最优代码: #include int main() { int n,m; scanf("%d",&n); while(n--) { getchar(); scanf("%*c%d",&m); printf("%d\n",m); } return 0; }原创 2015-10-27 21:03:14 · 476 阅读 · 0 评论 -
nyoj24
一开始用到筛选素数法,可是结果是RunTimeError #include #include #define MaxSize 1000001 int prime[MaxSize]; void Prime() { memset(prime,0,sizeof(prime)); for(int i = 2;i { if(prime[i]) { continue; }原创 2015-10-26 22:09:41 · 486 阅读 · 0 评论 -
nyoj65
#include int main() { int n,m; scanf("%d",&n); while(n--) { int total=0; scanf("%d",&m); for(int i =1;i { int sum=1; for(int j =1;j { if(j%2 != 0) { sum *= j; } } total += su原创 2015-10-26 20:09:03 · 414 阅读 · 0 评论 -
nyoj22 素数求和
#include #include #define MaxSize 1001 int prime[MaxSize]; void Prime() { memset(prime,0,sizeof(prime)); for(int i = 2;i { if(prime[i]) { continue; } else{ for(int j = i*i;j { prime原创 2015-10-25 22:45:24 · 499 阅读 · 0 评论 -
ASCII排序 nyoj4
#include void swap(char &a,char &b) { char temp = a; a = b; b = temp; } int main() { int i = 0; scanf("%d",&i); while(i--) { char s[10]; scanf("%s",&s); if(s[0] > s[1])swap(s[0],s[1原创 2015-10-25 20:08:11 · 403 阅读 · 0 评论 -
nyoj-25
#include #include int main() { char a[30],b[30]; int i=0; while(~scanf("%s%s",&a,&b)) { i++; if(a[1]=='#') { a[0]=(a[0]-'A'+1)%7+'A'; a[1]='b'; } else if(a[1]=='b') { a[0]=(a[0]-'A'+6)原创 2015-10-25 18:57:46 · 465 阅读 · 0 评论