目录入门级别的题
题单地址:https://ac.nowcoder.com/acm/contest/19305?from=acdiscuss#question/%22page%22%3A1
上下金字塔数字三角形字符金字塔涂小天与他的画箭形图案牛牛学数列牛牛学数列2牛牛学数列3牛牛学数列4牛牛学数列5牛牛学数列6A+B多组输入a+b多组输入a+b II多组数据a+b III[NOIP2018]标题统计栗酱数数有趣的二进制[NOIP2006]数列只能吃土豆的牛牛[NOIP2015]金币托米历险记绩点买铅笔整数个数栗酱的文明2黑大火与他的猫[NOIP2000]进制转换【负数进制】素数判断Game【有意思】[NOIP1999]Cantor表最大的差成绩统计糖果俱乐部数字计数热杆上的蚂蚁焦虑的蚂蚁拯救小aYoungManDon'tSayFive魔法数字变换[NOIP2005]陶陶摘苹果[NOIP2004]津津的储蓄计划[NOIP2002]级数求和cayun日常之赏月鹏D博弈与核心能源动力好数3和5和7回文对称数数位之和箱子归位栗酱和火柴[NOIP2009]多项式输出更相减损术
上下金字塔#include数字三角形void print_f(int n); int main(void) { int n; while( scanf("%d",&n) != EOF ) { print_f(n); } return 0; } void print_f(int n) { int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) { printf(" "); } for(j=1;j<=i*2-1;j++) { printf("*"); } printf("n"); } for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) { printf(" "); } for(j=1;j<=2*(n-i)-1;j++) { printf("*"); } printf("n"); } }
#include字符金字塔int main(void) { int n; int i,j; int a=1; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) { printf("%4d",a); a++; } printf("n"); } }
#includeusing namespace std; int main(void) { char c; cin>>c; int n=c-'A'+1; for(int i=1;i<=n;i++) { for(int j=1;j<=n-i;j++) cout<<" "; int k=0; for(int j=1;j<=1+(i-1)*2;j++) { printf("%c",'A'+k); if(j 涂小天与他的画 #includeusing namespace std; int main(void) { int t; cin>>t; while(t--) { int n; cin>>n; n=n/2+1; for(int i=1;i<=n;i++) { for(int j=1;j<=n-i;j++) cout<<" "; for(int j=1;j<=1+(i-1)*2;j++) cout<<"*"; cout< 箭形图案 #includeusing namespace std; int main(void) { int n; while(cin>>n) { for(int i=1;i<=n;i++) { for(int j=1;j<=(n+1-i)*2;j++) cout<<" "; for(int j=1;j<=i;j++) cout<<"*"; cout< 牛牛学数列 #include牛牛学数列2int main(void) { int a,b; int sum; int i,n; scanf("%d",&n); sum=0; for(i=1;i<=n;i++) { if(i%2==0) { sum=sum-i; } else sum=sum+i; } printf("%dn",sum); return 0; } #include牛牛学数列3int main(void) { int n; int i; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+1/(double)i; } printf("%.6lfn",sum); return 0; } #include牛牛学数列4using namespace std; double sum; int n; double solve(int n) { int k=1,temp=0; for(int i=1;i<=n;i++) { if(i&1) temp+=k; else temp-=k; k+=2; } return 1.0/temp; } int main(void) { cin>>n; for(int i=1;i<=n;i++) sum+=solve(i); printf("%.3lf",sum); return 0; } #includeusing namespace std; int main(void) { int n; cin>>n; int sum=0,temp=0; for(int i=1;i<=n;i++) { temp+=i; sum+=temp; } cout< 牛牛学数列5 #includeusing namespace std; typedef long long int LL; LL f[105]; int main(void) { int n;cin>>n; f[1]=1,f[2]=1; for(int i=3;i<=n;i++) f[i]=f[i-1]+f[i-2]; cout< 牛牛学数列6 #includeusing namespace std; typedef long long int LL; LL f[105]; int main(void) { int n;cin>>n; f[1]=0,f[2]=1,f[3]=1; for(int i=4;i<=n;i++) f[i]=f[i-1]+f[i-2]*2+f[i-3]; cout< A+B #includeusing namespace std; typedef long long int LL; LL f[105]; int main(void) { int a,b; while(cin>>a>>b) cout< 多组输入a+b #include多组输入a+b IIint main(void) { int a,b; while( scanf("%d %d",&a,&b) != EOF ) { printf("%dn",a+b); } return 0; } #includeusing namespace std; int main(void) { int t; cin>>t; while(t--) { int a,b; cin>>a>>b; cout< 多组数据a+b III #includeusing namespace std; int main(void) { int a,b; while(cin>>a>>b,a!=0||b!=0) { cout< [NOIP2018]标题统计 #includeusing namespace std; int main(void) { string s; getline(cin,s); int cnt=0; for(int i=0;i 栗酱数数 #includeusing namespace std; bool check(int i) { if(i%4==0) return false; while(i) { int t=i%10; if(t==4) return false; i/=10; } return true; } int main(void) { int n; cin>>n; for(int i=1;i<=n;i++) { if(check(i)) cout< 有趣的二进制 #includeusing namespace std; long long int lowbit(long long int x) { return x&(-x); } int main(void) { long long int n; while(cin>>n) { int cnt=0; while(n) { n=n-lowbit(n); cnt++; } cout< [NOIP2006]数列
https://ac.nowcoder.com/acm/contest/19305/1019
爆搜打表,再查找。#includeusing namespace std; typedef long long int LL; LL k,n; set st; void dfs(LL sum,LL step) { if(sum>1e15) return; st.insert(sum); if(step<15) { dfs(sum+pow(k,step),step+1); dfs(sum,step+1); } } int main(void) { cin>>k>>n; dfs(0,1); dfs(1,1); int k=0; for(auto i=st.begin();i!=st.end();i++) { if(k==n) cout<<*i< 就是一个k进制。
#includetypedef long long int LL; using namespace std; int main(void) { int k,n; cin>>k>>n; LL sum=0; for(int i=0;i<31;i++) { if(n>>i&1) sum+=pow(k,i); } cout< 只能吃土豆的牛牛 #include[NOIP2015]金币using namespace std; int main(void) { int t; while(cin>>t) { for(int i=1;i<=t;i++) { int k; cin>>k; long long int sum=0; for(int i=0;i<=30;i++) { if(k>>i&1) sum+=pow(3,i); } printf("Case #%d: %lldn",i,sum); } } return 0; } #include#include using namespace std; int main(void) { int n;cin>>n; int sum=0; int k=0; for(int i=1;i<=100000;i++) { for(int j=1;j<=i;j++) { sum+=i; k++; if(k==n) { cout< 托米历险记
贪心,找钱的时候优先用大的钞票。#includeusing namespace std; const int N=1e5+10; int a[10]={25,50,100}; int cnt[10],b[N]; int main(void) { int n; cin>>n; for(int i=0;i >b[i]; for(int i=0;i 绩点 #includeusing namespace std; const int N=1e5+10; double g[N],s[N],sum1,sum2; int n; int main(void) { cin>>n; for(int i=0;i >g[i]>>s[i]; for(int i=0;i 买铅笔 #includeusing namespace std; const int N=1e5+10; int a[N],b[N],n; int maxv=1e9; int main(void) { cin>>n; for(int i=0;i<3;i++) cin>>a[i]>>b[i]; for(int i=0;i<3;i++) { int cnt=n/a[i]; if(n%a[i]) cnt++; maxv=min(maxv,cnt*b[i]); } cout< 整数个数 #includeusing namespace std; const int N=1e5+10; int a[N],n; int main(void) { cin>>n; for(int i=0;i >s; a[s]++; } cout< 栗酱的文明2
https://ac.nowcoder.com/acm/contest/19305/1026
题目给得是任意得两个城池都有边。#includeusing namespace std; int t,n,a[100005]; bool cmp(int a,int b) {return a>b;} int main(void) { cin>>t; while(t--) { cin>>n; for(int i=0;i >a[i]; sort(a,a+n,cmp); int cnt=n; for(int i=0;i 黑大火与他的猫 #includeusing namespace std; int main(void) { int t; cin>>t; while(t--) { int n,m; cin>>n>>m; int x,cnt=0; for(int i=0;i >x; if(n>=x) cnt++,n-=x; } cout< [NOIP2000]进制转换【负数进制】
https://ac.nowcoder.com/acm/contest/19305/1028
当余数小于0时。
我们只需要将商+1,余数-除数即可,因为余数(绝对值)一定小于除数,所以这样就可以将余数装换为正数。#includeusing namespace std; char get(int x) { if(x<=9) return '0'+x; else return 'A'+x-10; } int main(void) { int n,k; cin>>n>>k; string ans; int w=n; if(n==0) { printf("0=0(base%d)",k); return 0; } while(n) { int temp=n%k; n=n/k; if(temp<0) n++,temp-=k; ans+=get(temp); } reverse(ans.begin(),ans.end()); printf("%d=",w); cout< 素数判断 #includeGame【有意思】using namespace std; int t,n; bool check(int n) { if(n==1) return false; for(int i=2;i<=n/i;i++) if(n%i==0) return false; return true; } int main(void) { cin>>t; while(t--) { cin>>n; if(check(n)) puts("Yes"); else puts("No"); } return 0; }
https://ac.nowcoder.com/acm/contest/19305/1030
由题意可知,最终的集合一定是一个个的质数。#include[NOIP1999]Cantor表using namespace std; int main(void) { int cnt=0,n; cin>>n; for(int i=2;i<=n/i;i++) { while(n%i==0) cnt++,n/=i; } if(n!=1) cnt++; cnt--;//cnt是总的质数个数,-1是分解的次数 if(cnt&1) puts("Johnson"); else puts("Nancy"); return 0; } #includeusing namespace std; int main(void) { int n; cin>>n; for(int i=1;;i++) { if(n#include using namespace std; const int N=1e5+10; int a[N],n; int main(void) { cin>>n; for(int i=0;i >a[i]; sort(a,a+n); cout< 成绩统计 #include糖果俱乐部using namespace std; const int N=1e5+10; int a[N],n,sum; int main(void) { cin>>n; for(int i=0;i >a[i],sum+=a[i]; sort(a,a+n); printf("%.2lf %d %d",sum*1.0/n,a[n-1],a[0]); return 0; }
https://ac.nowcoder.com/acm/contest/19305/1034
贪心思想,偶数的直接拿走,奇数的俩俩配对先拿最大的奇数,以此类推。#includeusing namespace std; const int N=1e5+10; int a[N],n,sum; vector ve; int main(void) { cin>>n; for(int i=0;i >a[i]; if(a[i]&1) ve.push_back(a[i]); else sum+=a[i]; } sort(ve.begin(),ve.end()); reverse(ve.begin(),ve.end()); for(int i=1;i 数字计数 #includeusing namespace std; vector ve; int n,x; int a[1005]={0}; map mp; int main(void) { cin>>n; for(int i=0;i >x; if(!mp[x]) ve.push_back(x); mp[x]++; } sort(ve.begin(),ve.end()); n=ve.size(); a[0]=ve[n-1]-ve[n-2]; a[1]=ve[n-1]-ve[1]; a[2]=ve[n-2]-ve[1]; a[3]=ve[n-2]-ve[0]; for(int i=0;i<4;i++) cout< 热杆上的蚂蚁 #includeusing namespace std; int main(void) { int n,l,x,ans=0; cin>>l>>n; for(int i=0;i >x; ans=max(ans,min(x,l-x)); } cout< 焦虑的蚂蚁 #includeusing namespace std; int n,m,op,x,ans; int main(void) { cin>>n>>m; while(m--) { cin>>op>>x; if(!op) ans=max(ans,x); else ans=max(ans,n-x); } cout< 拯救小a #includeusing namespace std; int main(void) { string s; int cnt=0; while(getline(cin,s)) { if(s==".") break; for(int i=0;i YoungManDon’tSayFive #includeusing namespace std; int main(void) { string s; cin>>s; for(int i=0;i 魔法数字变换 #includeusing namespace std; int n,cnt; int main(void) { cin>>n; while(n!=1) { if(n&1) n=n*3+1; else n=n/2; cnt++; } cout< [NOIP2005]陶陶摘苹果 #includeusing namespace std; int a[15],cnt; int main(void) { for(int i=0;i<11;i++) cin>>a[i]; for(int i=0;i<10;i++) if(a[10]+30>=a[i]) cnt++; cout< [NOIP2004]津津的储蓄计划 #includeusing namespace std; int main(void) { int sum=0,temp=0,flag=1; for(int i=0;i<12;i++) { int x; cin>>x; if(flag) temp+=300,temp-=x; if(flag&&temp<0) flag=0,temp=-(i+1); if(flag) { sum+=temp/100*100; temp=temp%100; } } sum=sum*1.2; if(flag) cout< [NOIP2002]级数求和 #includeusing namespace std; int main(void) { int k; cin>>k; double sum=0; for(int i=1;i<=1000000;i++) { sum+=1.0/i; if(sum>k) { cout< cayun日常之赏月 #includeusing namespace std; int a[130],t; int main(void) { cin>>t; for(int i=0;i<=15;i++) a[i]=i; for(int i=16,j=14;i<30;i++,j--) a[i]=j; for(int i=0;i<30;i++) a[i+30]=a[i]; while(t--) { int b[30]={0}; cin>>b[0]>>b[1]; for(int i=0;i<60;i++) { bool flag=true; for(int j=0;j<2;j++) if(a[i+j]!=b[j]) flag=false; if(flag) { cout< 鹏 #includeusing namespace std; const int N=1e7+10; int a[N],n,cnt; int main(void) { cin>>n; for(int i=0;i >a[i]; for(int i=0;i D博弈与核心能源动力 #includeusing namespace std; int main(void) { int m,k,g,p; cin>>m>>k>>g>>p; long long int cnt=0; if(m>0)cnt+=m/p; k+=cnt,g+=cnt; while(k>=2||g>=4) { int temp=k/2+g/4; cnt+=temp; k=k%2+temp; g=g%4+temp; } cout< 好数 #includeusing namespace std; int main(void) { int t; while(cin>>t) { while(t--) { int l,r; cin>>l>>r; int cnt=0; for(int i=max(l,100);i<=r;i++) { int a=i/100; int b=i/10; int sum=a*b; if((sum%10)==(i%10)) cnt++; } cout< 3和5和7 #includeusing namespace std; int n; int main(void) { cin>>n; for(int i=1;i<=n;i++) { if(i%3==2&&i%7==2&&i%5==3) cout< 回文对称数 #includeusing namespace std; int n; bool check(int x) { string s=to_string(x); string ss=s; reverse(ss.begin(),ss.end()); return s==ss; } int main(void) { cin>>n; for(int i=1;i<=n;i++) if(check(i)) cout< 数位之和 #includeusing namespace std; int main(void) { string s; cin>>s; int sum=0; for(int i=0;i 箱子归位 #includeusing namespace std; string s[100]; int main(void) { for(int i=0;i<5;i++) getline(cin,s[i]); int x,y; for(int i=0;i<5;i++) { int k=0; for(int j=0;j #includeusing namespace std; int t; map >mp; int main(void) { cin>>t; mp['0']={2,4}; mp['1']={0,2}; mp['2']={3,2}; mp['3']={3,2}; mp['4']={1,3}; mp['5']={3,2}; mp['6']={3,3}; mp['7']={1,2}; mp['8']={3,4}; mp['9']={3,3}; while(t--) { char c; cin>>c; cout< [NOIP2009]多项式输出 #includeusing namespace std; int main(void) { int n; cin>>n; int flag=0; for(int i=n;i>=0;i--) { int x; cin>>x; if(x==0) continue; if(x>0) { if(flag) cout<<"+"; if(i) { if(x==1) printf("x"); else printf("%dx",x); if(i!=1&&i) printf("^%d",i); } else cout< 更相减损术 #includeusing namespace std; int gcd(int a,int b) { return b?gcd(b,a%b):a; } int main(void) { int a,b; cin>>a>>b; cout< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)