BOSS战-入门综合练习1
P1478 陶陶摘苹果(升级版)
题目描述
又是一年秋季时,陶陶家的苹果树结了n个果子。陶陶又跑去摘苹果,这次她有一个a公分的椅子。当他手够不着时,他会站到椅子上再试试。
这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力气只剩下s了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在s<0之前最多能摘到多少个苹果。
现在已知n个苹果到达地上的高度xi,椅子的高度a,陶陶手伸直的最大长度b,陶陶所剩的力气s,陶陶摘一个苹果需要的力气yi,求陶陶最多能摘到多少个苹果。
输入输出格式
输入格式:
第1行:两个数 苹果数n,力气s。
第2行:两个数 椅子的高度a,陶陶手伸直的最大长度b。
第3行~第3+n-1行:每行两个数 苹果高度xi,摘这个苹果需要的力气yi。
输出格式:
只有一个整数,表示陶陶最多能摘到的苹果数。
输入输出样例
说明
所有数据:n<=5000 a<=50 b<=200 s<=1000
xi<=280 yi<=100
1 #include<bits/stdc++.h> 2 using namespace std; 3 struct p{ 4 int xi,yi; 5 }a[5005]; 6 int cmp(p x,p y); 7 int main(){ 8 int n,s; 9 scanf("%d%d",&n,&s); 10 int t,b; 11 scanf("%d%d",&t,&b); 12 int h=t+b; 13 for(int i=0;i<n;i++){ 14 scanf("%d%d",&a[i].xi,&a[i].yi); 15 } 16 sort(a,a+n,cmp); 17 int sum=0; 18 for(int i=0;i<n;i++){ 19 if(h>=a[i].xi){ 20 if(s-a[i].yi>=0){ 21 s-=a[i].yi; 22 sum++; 23 } 24 else break; 25 } 26 } 27 printf("%d\n",sum); 28 } 29 int cmp(p x,p y){ 30 return x.yi<y.yi; 31 }
P1618 三连击(升级版)
题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
//感谢黄小U饮品完善题意
输入输出格式
输入格式:
三个数,A B C。
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
说明
保证A<B<C
思路:水;
1 #include<bits/stdc++.h> 2 using namespace std; 3 int flag[10]; 4 int a,b,c; 5 int main(){ 6 scanf("%d%d%d",&a,&b,&c); 7 int sum=0; 8 for(int i=1;i<=999;i++){ 9 int t1=i*a; 10 int t2=i*b; 11 int t3=i*c; 12 int x1=t1,x2=t2,x3=t3; 13 memset(flag,0,sizeof(flag)); 14 if(t1<1000&&t1>=123&&t2<1000&&t2>=123&&t3<1000&&t3>=123){ 15 flag[t1%10]=1; 16 t1/=10; 17 flag[t1%10]=1; 18 t1/=10; 19 flag[t1%10]=1; 20 flag[t2%10]=1; 21 t2/=10; 22 flag[t2%10]=1; 23 t2/=10; 24 flag[t2%10]=1; 25 flag[t3%10]=1; 26 t3/=10; 27 flag[t3%10]=1; 28 t3/=10; 29 flag[t3%10]=1; 30 int f=1; 31 for(int i=1;i<=9;i++){ 32 if(flag[i]==0){ 33 f=0; 34 break; 35 } 36 } 37 if(f){ 38 sum++; 39 printf("%d %d %d\n",x1,x2,x3); 40 } 41 } 42 } 43 if(sum==0){ 44 printf("No!!!\n"); 45 } 46 }
P1579 哥德巴赫猜想(升级版)
题目背景
1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和。质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。需要特别说明的是1不是质数。
这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。
从此,这道数学难题引起了几乎所有数学家的注意。哥德巴赫猜想由此成为数学皇冠上一颗可望不可及的“明珠”。
题目描述
现在请你编一个程序验证哥德巴赫猜想。
先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数。
输入输出格式
输入格式:
仅有一行,包含一个正奇数n,其中9<n<20000
输出格式:
仅有一行,输出3个质数,这3个质数之和等于输入的奇数。相邻两个质数之间用一个空格隔开,最后一个质数后面没有空格。如果表示方法不唯一,请输出第一个质数最小的方案,如果第一个质数最小的方案不唯一,请输出第一个质数最小的同时,第二个质数最小的方案。
输入输出样例
2009
3 3 2003
思路:水;
1 #include<bits/stdc++.h> 2 using namespace std; 3 bool pan(int x); 4 int main(){ 5 int n; 6 scanf("%d",&n); 7 for(int i=2;i<n;i++){ 8 for(int j=i;j<n-i;j++){ 9 if(pan(i)&&pan(j)&&pan(n-i-j)){ 10 printf("%d %d %d\n",i,j,n-i-j); 11 return 0; 12 } 13 } 14 } 15 } 16 bool pan(int x){ 17 if(x==1) return false; 18 if(x==2) return true; 19 for(int i=2;i*i<=x;i++){ 20 if(x%i==0){ 21 return false; 22 } 23 } 24 return true; 25 }
P2089 烤鸡
题目背景
猪猪hanke得到了一只鸡
题目描述
猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末、孜然等),每种配料可以放1—3克,任意烤鸡的美味程度为所有配料质量之和
现在,Hanke想要知道,如果给你一个美味程度,请输出这10种配料的所有搭配方案
输入输出格式
输入格式:
一行,n<=5000
输出格式:
第一行,方案总数
第二行至结束,10个数,表示每种配料所放的质量
按字典序排列。
如果没有符合要求的方法,就只要在第一行输出一个“0”
输入输出样例
11
10 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
说明
枚举
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int a,b,c,d,e,f,g,h,i,j,in,x=0; 6 cin>>in; 7 for (a=1;a<=3;a++) 8 for (b=1;b<=3;b++) 9 for (c=1;c<=3;c++) 10 for (d=1;d<=3;d++) 11 for (e=1;e<=3;e++) 12 for (f=1;f<=3;f++) 13 for (g=1;g<=3;g++) 14 for(h=1;h<=3;h++) 15 for (i=1;i<=3;i++) 16 for (j=1;j<=3;j++) 17 if (a+b+c+d+e+f+g+h+i+j==in) 18 x++; 19 cout<<x<<endl; 20 for (a=1;a<=3;a++) 21 for (b=1;b<=3;b++) 22 for (c=1;c<=3;c++) 23 for (d=1;d<=3;d++) 24 for (e=1;e<=3;e++) 25 for (f=1;f<=3;f++) 26 for (g=1;g<=3;g++) 27 for(h=1;h<=3;h++) 28 for (i=1;i<=3;i++) 29 for (j=1;j<=3;j++) 30 if (a+b+c+d+e+f+g+h+i+j==in){ 31 cout<<a<<" "; 32 cout<<b<<" "; 33 cout<<c<<" "; 34 cout<<d<<" "; 35 cout<<e<<" "; 36 cout<<f<<" "; 37 cout<<g<<" "; 38 cout<<h<<" "; 39 cout<<i<<" "; 40 cout<<j<<endl; 41 } 42 }
浙公网安备 33010602011771号