ICode9

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

Codeforces Round #654 (Div. 2)题解

2020-07-02 13:36:27  阅读:340  来源: 互联网

标签:int 题解 ll namespace cin long 654 Div include


A. Magical Sticks

思路:

尽可能的凑成长度为$n$的木棍,答案为$(n+1)/2$

#include<iostream>
#include<algorithm>
 using namespace std;
 int main()
 {
     int t;
     cin>>t;
     while(t--){
         int n;
         cin>>n;
         cout<<(n+1)/2<<endl;
     }
    return 0;
 }
View Code

B. Magical Calendar

思路:

分成两种情况:

①$k≤r$,答案就为$(1+k-1)*(k-1)/2+1$

②$k>r$,答案就为$(1+r)*r/2$

#include<iostream>
#include<algorithm>
 using namespace std;
 typedef long long ll;
 int main()
 {
     int t;
     cin>>t;
     while(t--){
         ll k,r,ans;
         cin>>k>>r;
         if(k<=r){
             ans=(1+k-1)*(k-1)/2+1;
         }
         else ans=(1+r)*r/2;
         cout<<ans<<endl;
     }
     return 0;
 }
View Code

C. A Cookie for You

思路:

可以发现,第一类客人有什么就吃什么,但是第二类客人只吃少的那部分

所以,我们就只需要判断第二类客人够不够吃,已经总量够不够吃就好了

#include<iostream>
#include<algorithm>
 using namespace std;
 typedef long long ll;
 int main()
 {
     int t;
     cin>>t;
     while(t--){
         ll a,b,n,m;
         cin>>a>>b>>n>>m;
         if(min(a,b)>=m&&a+b>=n+m) cout<<"Yes"<<endl;
         else cout<<"No"<<endl;
     }
    return 0;
 }
View Code

D. Grid-00100

思路:

可以发现,答案要么为$2$要么为$0$

通过贪心,我们知道要将$1$尽可能均匀的放置在每行每列

构造方法为,现在先将$1$放置在主对角线上,然后再放置在右上角的副对角线上,再放在主对角左下放的副对角线上,依次交替,直到$k$为$0$

最后,如果$k%n==0$,答案就为$0$,否则为$2$

#include<bits/stdc++.h>
using namespace std;
const int N= 1e3+3;
int t,n,k;
int a[N];
int mat[N][N];
int main(){
    cin>>t;
    while(t--){
        cin>>n>>k;
        for(int i=0;i<n;i++) a[i]=i;
        memset(mat,0,sizeof mat);
        int now=0;
        for(int i=1;i<=k;i++){
            mat[a[now]][now]=1;
            a[now]=(a[now]+1)%n;
            now=(now+1)%n;
        }
        if(k%n==0) cout<<0;
        else cout<<2;
        cout<<endl;
        for(int i=0;i<n;i++){
           for(int j=0;j<n;j++) cout<<mat[i][j];
           cout<<endl;
        }
    }
}
View Code

 

标签:int,题解,ll,namespace,cin,long,654,Div,include
来源: https://www.cnblogs.com/overrate-wsj/p/13224178.html

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

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

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

ICode9版权所有