ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cf 1305 E. Kuroni and the Score Distribution

2020-03-04 09:04:41  阅读:475  来源: 互联网

标签:1305 题目 输出 int Score im ans Distribution


题目传送门:E. Kuroni and the Score Distribution

题目大意:给n和m,输出n个数,这些数里必须要有m对a[i]+a[j]==a[k]  ( i < j < k )

题解:(这里的a[i]不是题目意思中的a[i])分两种情况:

1. m==0 直接输出n个递增的奇数即可;

2. m!=0; 先打个表找出1~q(q<=n)共有多少对满足i+j==k记录在数组a中,然后找到小于等于m的第一个x;如果x>n或者a[n]<m,输出-1。

否则,输出1到x。如果小于m还差m-a[x]个,x++, 自己写几个数可以发现a[i]-a[i-1]=(i-1)/2; 令y=x+(x-1)/2; y每加2,就会少一对满足条件的,找到y输出。然后判断还差几个数没有输出。输出n-x个数这些数都比前一个大y+1即可不出现满足要求的。

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3  
 4 int a[100100];
 5  
 6 int main()
 7 {
 8     int n,m;
 9     cin>>n>>m;
10     a[1]=0;a[2]=0,a[3]=1,a[4]=2;
11     for(int i=5;i<=n;i++){
12         a[i]=a[i-1]+(i-1)/2;
13         if(a[i]>m) break;
14     }
15     int k=-1,l=0;
16     for(int i=1;i<=n;i++){
17         if(a[i]>=m){
18             k=i;
19             break;
20         }
21     }
22     if(m==0){
23         int t=0,ans=1;
24         for(int i=0;i<n;i++){
25             ans+=2;
26             printf("%d ",ans);
27         }
28         return 0;
29     }
30     if(k>n||k==-1){
31         cout<<-1<<endl;
32         return 0;
33     }
34     int flag=0;
35     if(a[k]>m) k--,flag=1;
36     for(int i=1;i<=k;i++){
37         printf("%d ",i);
38     }
39     int x=k/2,y=k;
40     if(flag){
41         y++;
42         while(a[k]+x>m) x--,y+=2;
43         printf("%d ",y);
44         k++;
45     }
46     n-=k;
47     int t=y+1,ans=y;
48     for(int i=0;i<n;i++){
49         ans+=t;
50         printf("%d ",ans);
51     }
52     return 0;
53 }

 

标签:1305,题目,输出,int,Score,im,ans,Distribution
来源: https://www.cnblogs.com/lilibuxiangtle/p/12407558.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有