CF1537A Arithmetic Array

洛谷传送门

CF1537A


分析

用这 \(n\) 个数的总和 \(sum\) 判断:

如果 \(sum<n\) 直接用 \(n-sum+1\) 补上即可

如果 \(sum>n\) 意味着要用 \(sum-n\) 个 0 补上


代码

#include <cstdio>
#include <cctype>
using namespace std;
int iut(){
int ans=0,f=1; char c=getchar();
while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans*f;
}
void print(int ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
int main(){
for (int T=iut();T;--T){
int n=iut(),sum=0;
for (int i=1;i<=n;++i) sum+=iut();
print(sum>=n?(sum-n):1),putchar(10);
}
return 0;
}

CF1537B Bad Boy

洛谷传送门

CF1537B


分析

要想使三点曼哈顿距离最大,把另外两点放在对角即可


代码

#include <cstdio>
#include <cctype>
using namespace std;
int iut(){
int ans=0,f=1; char c=getchar();
while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans*f;
}
int main(){
for (int T=iut();T;--T){
int n=iut(),m=iut(); iut(),iut();
printf("1 1 %d %d\n",n,m);
}
return 0;
}

CF1537C Challenging Cliffs

洛谷传送门

CF1537C


分析

首先第一个数和最后一个数可以先确定下来。

如果把剩下的数直接在中间升序排列,下界为 \(n-3\)

其浪费了第一个数和最后一个数所相邻的位置。

那么如果以 \((pos,n]\) 和 \([1,pos]\) 排列,就可以达到 \(n-2\) 的下界


代码

#include <cstdio>
#include <cctype>
#include <algorithm>
using namespace std;
int n,a[200011];
int iut(){
int ans=0,f=1; char c=getchar();
while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans*f;
}
int main(){
for (int T=iut();T;--T){
n=iut();
for (int i=1;i<=n;++i) a[i]=iut();
sort(a+1,a+1+n);
if (n==2) printf("%d %d\n",a[1],a[2]);
else{
int pos=1;
for (int i=2;i<n;++i)
if (a[i+1]-a[i]<a[pos+1]-a[pos]) pos=i;
for (int i=pos+1;i<=n;++i) printf("%d ",a[i]);
for (int i=1;i<=pos;++i) printf("%d%c",a[i],i==pos?10:32);
}
}
return 0;
}

CF1537D Deleting Divisors

洛谷传送门

CF1537D


分析

考虑一个奇数减去一个因子,会变成偶数,然后其又会变成奇数。

最后变为质数或 1 时终止,发现奇数时后手必胜。

同时含有奇质因子的偶数一定先手必胜。

剩下 2 的幂次方通过指数的奇偶性判断是否先手必胜。


代码

#include <cstdio>
#include <cctype>
using namespace std;
int n,c;
int iut(){
int ans=0,f=1; char c=getchar();
while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans*f;
}
int main(){
for (int T=iut();T;--T){
n=iut(),c=0;
if (n&1) {puts("Bob"); continue;}
while (!(n&1)) n>>=1,++c;
if (n>1) puts("Alice");
else puts(c&1?"Bob":"Alice");
}
return 0;
}

CF1537E2 Erase and Extend (Hard Version)

洛谷传送门

CF1537E2


分析

答案肯定是一段前缀重复好多次的结果,设当前选中的前缀长度为 \(ans\),

枚举新的前缀长度 \(i\),判断末位大小,如果 \(s[i-1]<s[(i-1)%ans]\) ,

直接将 \(i\) 作为新的 \(ans\),如果大于直接退出即可


代码

#include <cstdio>
#include <cstring>
using namespace std;
int n,m,ans; char s[500011];
int main(){
scanf("%d%d%s",&n,&m,s),ans=1;
for (int i=1;i<n;++i)
if (s[i]>s[i%ans]) break;
else if (s[i]<s[i%ans]) ans=i+1;
for (int i=0;i<m;++i) putchar(s[i%ans]);
return 0;
}

CF1537F Figure Fixing

洛谷传送门

CF1537F


代码(分析在上篇题解中)

#include <cstdio>
#include <cctype>
using namespace std;
const int N=200011; long long s[2];
struct node{int y,next;}e[N<<1];
int v[N],a[N],n,m,flag,et,as[N];
int iut(){
int ans=0,f=1; char c=getchar();
while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans*f;
}
bool dfs(int x){
bool flag=1; s[v[x]]+=a[x];
for (int i=as[x];i;i=e[i].next)
if (v[e[i].y]==v[x]) flag=0;
else if (v[e[i].y]==-1) v[e[i].y]=v[x]^1,flag&=dfs(e[i].y);
return flag;
}
int main(){
for (int T=iut();T;--T){
n=iut(),m=iut(),flag=et=1;
for (int i=1;i<=n;++i) a[i]=iut(),v[i]=-1;
for (int i=1;i<=n;++i) a[i]=iut()-a[i];
for (int i=1;i<=m;++i){
int x=iut(),y=iut();
e[++et]=(node){y,as[x]},as[x]=et;
e[++et]=(node){x,as[y]},as[y]=et;
}
for (int i=1;i<=n;++i)
if (v[i]==-1){
v[i]=s[0]=s[1]=0;
bool now=dfs(i);
if (now&&(s[0]!=s[1])) {puts("NO"),flag=0; break;}
if (!now&&((s[0]^s[1])&1)) {puts("NO"),flag=0; break;}
}
for (int i=1;i<=n;++i) as[i]=0;
if (flag) puts("YES");
}
return 0;
}

Codeforces Round #726 (Div. 2)的更多相关文章

  1. Codeforces Round #726 (Div.2) A-E1 题解

    A. Arithmetic Array 题目大意:一串数,求添加多少个非负整数后平均值为1 代码: //CF726A #include<bits/stdc++.h> using names ...

  2. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  3. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  4. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  5. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  6. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  7. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  8. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  9. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

  10. Codeforces Round #268 (Div. 2) ABCD

    CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...

随机推荐

  1. win32-使用FillRect绘制具有渐变颜色的客户区域背景

    void OnEraseBkGnd(HWND hwnd) { /* Vars */ HDC dc; /* Standard Device Context; used to do the paintin ...

  2. node版本管理工具nvm的安装及使用

    一.什么是nvm nvm是一个node版本管理工具. 由于不同项目依赖的node版本可能不同,所以在维护多个项目时通常需要使用不同的node版本,这时候用nvm来切换不同的node版本就很方便. 官方 ...

  3. 记一个 Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8 编译问题引发的案例

    某天将项目 kotlin 版本升级到了 1.8.0 ,然后编译报错了, Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8 然后开始寻求解决方案 ...

  4. MIG是如何向DDR中写入数据的

    1.1    先来看看信号线的描述 我们以X16的器件为例,下面的截图来自 镁光的官方手册 https://media-www.micron.com/-/media/client/global/doc ...

  5. 【Azure 服务总线】Azure.Messaging.ServiceBus 多次发送消息报超时错误,是否可以配置重新发送?是否有内置重试机制?

    问题描述 使用 Azure Service Bus,提供应用程序之间松耦合的消息交换,但是有时候发送消息多次出现超时错误. A connection attempt failed because th ...

  6. 【Azure API 管理】讨论APIM是否适合直接存储文件到Azure Storage Account呢?

    问题描述 需要从 APIM 直接将大文件存入Azure Storage,没看到这方面的官方文档,所以是否有这方面的实践案例,或者APIM是否支持引用SDK (如Azure Storage SDK)? ...

  7. 【aspose-words】Aspose.Words for Java模板语法详细剖析

    前言 缘由 aspose-words模板语法再了解 垂死病中惊坐起,小丑竟是我自己.对于aspose-words的使用本狗自以为已炉火纯青,遂在新的迭代任务中毛遂自荐,并在小姐姐面前吹了一个大牛,分分 ...

  8. 英语字母z解析.drawio

    英语字母z解析.drawio

  9. B站Aimls的JavaFx教程目录合集

    B站里有时候不太好去找资源,用JS爬了下,整出标题和链接,方便后续查询某个知识点的使用! JavaFX视频教程第1课,hello world JavaFX视频教程第2课,application的启动方 ...

  10. CMAKE的学习

    下面我们来介绍Cmake Cmake 我们着重介绍一下CMAKE,是因为CMAKE现在用的人比MAKEFILE多一些,也更好理解,编写一些. 1 安装 cmake 1.1 卸载已经安装的旧版的CMAK ...