首页 > 其他分享 >2023.08.12 codeforces round 893 div2

2023.08.12 codeforces round 893 div2

时间:2023-08-16 17:25:03浏览次数:30  
标签:2023.08 ch ll codeforces long seller while 12 getchar

年轻人的第四场div2

rank:8217

solved:2

rating change:+31

new rating:1354

A.Buttons

题意:给定a,b,c三种按钮的数量,a按钮只能被Anna按,b按钮只能被Katie按,两个人都可以按c按钮,最后没有按钮可以按的人输,Anna先手,问谁是赢家;

两个人肯定优先按c按钮,且Anna是先手,只需比较两人能按的按钮数量即可;

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 ll read(){
 5     char ch=getchar();ll x=0,f=1;
 6     while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
 7     while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}
 8     return x*f;
 9 }
10 ll T;
11 ll a,b,c;
12 int main(){
13     T=read();
14     while(T--){
15         a=read();b=read();c=read();
16         if(c%2==0){
17             a+=c/2;b+=c/2;
18         }
19         if(c%2==1){
20             a+=c/2;a++;
21             b+=c/2;
22         }
23         if(a>b){
24             cout<<"First"<<endl;
25             continue;
26         }
27         cout<<"Second"<<endl;
28     }
29     return 0;
30 }

 

B.The Walkway

题意:有编号为 1 ~ N 的 N 个长椅,一共 M 个 seller ,第 i 个位于 S[i] ,当满足以下三种条件之一时 Petya 会吃一块饼干:

1.当前位置有 seller ;2.在编号为1的长椅处;3. D 小时没有吃饼干了;

现在我们要移走一个 seller 使得 Petya 吃的饼干数目最少,输出最少数目以及让 Petya 吃到最少饼干的方案数;

枚举每个 seller ,计算删除该 seller 之后吃到的饼干数即可;为了方便计算,我们不妨增加两个虚拟的 seller :S [ 0 ] = - D + 1,S [ M + 1 ] = N + 1 (赛时想到了增加两个 seller 但是写的 S [ 0 ] = 1 ,S [ M + 1 ] = N 加上在第一次遍历seller的时候就把在seller处吃的饼干加上了,然后一直没调出来,寒心);

计算两个 seller 之间吃饼干的个数放在 work 函数,由于当前位置有 seller 时会吃一次,在编号为1的长椅要吃一次,S [ 0 ] = - D +  1可以保证不论是否有 S [ 1 ] = 1 都不重复;

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 ll read(){
 5     char ch=getchar();ll x=0,f=1;
 6     while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
 7     while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}
 8     return x*f;
 9 }
10 const int maxm=1e9+7;
11 const int maxn=1e5+5;
12 ll T,N,M,D,now,ans,sum,cnt;
13 ll S[maxn];
14 ll work(ll x,ll y){
15     return (y-x-1)/D;
16 }
17 int main(){
18     T=read();
19     while(T--){
20         N=read();M=read();D=read();
21         for(int i=1;i<=M;i++){
22             S[i]=read();
23         }
24         S[0]=-D+1;S[M+1]=N+1;
25         sum=0;
26         for(int i=0;i<=M;i++){
27             sum+=work(S[i],S[i+1]);
28         } 
29         ans=maxm;cnt=0;
30         for(int i=1;i<=M;i++){
31             now=sum;
32             now-=work(S[i-1],S[i]);now-=work(S[i],S[i+1]);
33             now+=work(S[i-1],S[i+1]);now+=M-1;
34             if(now==ans){
35                 cnt++;continue;
36             }
37             if(now<ans){
38                 ans=now;cnt=1;continue;
39             }
40         }
41         cout<<ans<<" "<<cnt<<endl;
42         for(int i=0;i<=M+1;i++)S[i]=0;
43     }
44     return 0;
45 }

 

C.Yet Another Permutation Problem

题意:给定序列的长度 N ,求一个 N 的排列使得所有 gcd( A[ i ] ,A[ i+1 ] )(注:i==N 时令A[ i+1 ] = A[ 1 ] )的取值最多;

看了样例,考虑对于一个数 x 后面一直取 2*x 直到超出范围,可以使得 gcd( x ,2*x )= x ;

 1 #include<bits/stdc++.h>
 2 #define ll long long 
 3 using namespace std;
 4 int read(){
 5     char ch=getchar();int x=0,f=1;
 6     while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
 7     while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}
 8     return x*f;
 9 }
10 const int maxn=1e5+5;
11 ll T,N;
12 ll vis[maxn];
13 int main(){
14     T=read();
15     while(T--){
16         N=read();
17         for(int i=1;i<=N;i++)vis[i]=0;
18         
19         for(int i=1;i<=N;i++){
20             if(vis[i])continue;
21             cout<<i<<" ";
22             vis[i]=1;
23             int j=i;
24             while(2*j<=N){
25                 if(vis[2*j]==0){
26                     vis[2*j]=1;j=2*j;
27                     cout<<j<<" ";
28                     continue;
29                 }
30                 break;
31             }
32         }
33         cout<<endl;
34     }
35     return 0;
36 }

 

D.Trees and Segments

题意:给定一个01串 s ,最长连续 0 串的长度 L0 ,最长连续 1 串的长度 L1 ,( 如果没有0,则L0=0,如果没有1,则L1 = 1 ),最后计算美感 = A * L0 + L1,1 <= A <= N ;可以改变01串中的不超过K个数为相反的值,

问对于每一个 A ,最大的美感是多少;

有空补()

标签:2023.08,ch,ll,codeforces,long,seller,while,12,getchar
From: https://www.cnblogs.com/burutaofan/p/17635672.html

相关文章

  • Codeforces Round 891 (Div. 3)
    比赛链接:https://codeforces.com/contest/1857A.ArrayColoring题意:一个数列,问能否分成两个和的奇偶性相同的集合思路:因为偶数不改变奇偶性,咱们就统计奇数的个数,能平分成两组就行B.MaximumRounding题意:给一个数,每次可以找一位数不四舍可五入,然后把这个位及后面的数都变成......
  • Educational Codeforces Round 107 (Rated for Div. 2)
    EducationalCodeforcesRound107(RatedforDiv.2)A-ReviewSite思路:数1和3的个数#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong//#defineint__int128#definedoublelongdoubletypedefpair<int,int>PII;typedefpair&l......
  • ITK 实例12 置信连接对PNG向量图像进行二维分割
    1#include"itkVectorConfidenceConnectedImageFilter.h"2#include"itkImage.h"3#include"itkImageFileReader.h"4#include"itkImageFileWriter.h"5#include"itkRGBPixel.h"67intmain(i......
  • Codeforces Round 765 (Div. 2) A-E
    A.AncientCivilization好像就是对每个二进制位看一下0多还是1多,选择多的那个数就好了。vp的时候直接猜的,交了一发直接过了voidsolve(){intn=read(),m=read();vector<int>cnt0(m+1),cnt1(m+1);for(inti=1;i<=n;i++){intx=read();for(int......
  • Codeforces Round 893(div2)
    CodeforcesRound893(div2)[A题传送门](Problem-A-Codeforces)A题意:我们有a+b+c个瓶盖,选手1可以拿指定的a个或者c个里面的一个,选手2可以拿指定的b个或者c个里面的一个,可以拿完最后一个的即为获胜者,每个人都有最优策略。A思路:这个题一开始想错了,主要是没有读懂题意,理解清楚......
  • 基于python的12306自动抢票系统的设计与实现
    铁路售票系统12306网站作为一个广受人们的日常使用工具,受大极大的关注。铁路售票的管理者都主要考虑降低成本,提升售票服务满意度。一年一度的春运和节假日出行高峰期,给众多的出行群众者带来了极大的烦恼,也给用户购买火车票造成了巨大的不方便。本文通过调研动车售票系统的业务流程,......
  • YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别
    YUV模型是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间,常见的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等,其中比较常见的YUV420分为两种:YUV420P和YUV420SP。我们在android平台下使用相机默认图像格式是NV21属......
  • i513400f和i512400f差距 i5 13400f和i5 12400f区别对比
    i512400f是6核12线程,默认主频2.5GHz,单核最大加速频率4.4GHz,全核最大加速频率4.0GHz,不支持超频,二级缓存7.5MB三级缓存为18MB,内存支持DDR5-4800/DDR4-3200,TDP功耗为65W.组装电脑选i512400F还是i513400F怎么搭配更合适这些点很重要 http://www.adiannao.cn/dui5-13400f7nm工艺采......
  • 评测 i5 13400F对比i5 12490F选哪个好
    i5-12490F采用6核心12线程设计(P核),但并非是i5-12400那样的原生6核,而是i5-12600K去掉4个E核的版本,因此它的单核性能更加强大,三级缓存也升级到了20MB之多,比i5-12400的18MB多了2MB。除了缓存更大之外,i5-12490F频率也有一些提升,基础频率从i5-12400F的2.5G......
  • YUV图像格式转换: YUYV 转 NV12
    首先确认YUYV与NV12的采样格式,YUYV属于YUV4:2:2采样,而NV12属于YUV4:2:0采样。采样方式如下图所示:   实心圆表示Y分量,空心圆表示一对U和V的分量。并且YUV图像中每一个Y分量,即表示一个像素点。  可以很明显地看出YUV422采样中两个像素点共用一对U和V的分量,而YUV420......