Codeforces Round #666 (Div. 2)题解ABC Codeforces Round #666 (Div. 2)E Monster Invaders 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条 异或在笔试题中的超神表现 超级码力在线编程大赛初赛 第2场 T1-T4题解 1397D. Stoned Game(博弈) Codeforces Round #666(Div.2)A~D题题解 高性能微服务架构技术选型 阿里饿了么Java4面:(数据结构+框架源码+JVM+分布式) 2020java面试总结 使用ffmpeg提取mp4内部日期重命名文件(需lua) 【剑指Offer】56.2 数组中只出现一次的数字,其他出现3次 JAVA二三事-使用IO+Properties实现动态读取文本信息 排序算法的C语言实现C代码(未更完) RT-Thread 内核学习--信号量的初步使用 【剑指Offer】57.2 和为S的连续正数序列 Qt三方库开发技术:QXlsx介绍、编译和使用 4G DTU模块的作用和功能说明 【Tips】- Wifi模块和4G无线通信 【5G核心网】 Identifiers 身份标识 DPDK支持的硬件:CPU、网卡NIC、加密引擎、基带加速器 如何根据普通ip地址获取当前地理位置 人工智能能力提升指导总结 520了,用32做个简单的小程序 程序员的数学--用贝叶斯定理来推断一个案子 文旅部新规:在线旅游网站不得擅自屏蔽删除评价 不得大数据杀熟 苏宁易购开学季消费大数据:手机以旧换新销量增长299% 做实供电服务“133” 助大数据直上“云”端 思科前程序员离职 5 月后“删虚拟机跑路”,240 万美元打水漂,网友:够狠! 抗疫代码成国博最新藏品 阿里程序员“写代码写进国博挺酷” 国博史上首次收藏代码!它们是阿里程序员写下的抗疫代码 威胜信息发布2020年上半年业绩:物联网产业进入爆发期 营收净利双增长 下月发布会不止有新品折叠屏手机 酷开的物联网家居生态野心初现 史上最全的数据库面试题 数据库面试必看 一个数据库SQL查询的数次轮回 百度智能云正式对外发布百度智能云数据库品牌GaiaDB 数据库三大泛式是什么 电力行业网管需求 IT运维管理解决方案 citrix桌面虚拟化中的运维工具Director SRE运维体系的构建和工作职责划分 运维的核心价值是什么 手游开发定制的全过程详解 开发人员透露:《赛博朋克2077》枪支泛滥 成熟的产品经理如何应对“这个需求不合理” CI/CD管道对开发和运维的重要性 APP开发的流程是怎样的 如何开发一个APP 零基础学web前端开发要学多久 如何系统学习 Web前端要学习哪些内容呢 前端工程师至少要满足四类客户的需求 前端学习计划思维导图
您的位置:首页 >开发 >

Codeforces Round #666 (Div. 2)题解ABC

A. Juggling Letters

题目传送门

Juggling Letters

题目大意

给你n个字符串,让你移动任意次后判断能否让每个字符串相等

思路

直接统计每个字符串中出现的字符串的个数和,判断和是否为n的倍数

AC Code

#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define endl "\n"#define INF 0x3f3f3f3f#define int long long// #define TDS_ACM_LOCALconst int N=1009;int n, vis[30];string s[N];void solve(){cin>>n;memset(vis, 0, sizeof(vis));for(int i=1; i<=n; i++){cin>>s[i];for(int j=0; j<s[i].length(); j++){vis[s[i][j]-"a"]++;}}int flag=0;for(int i=0; i<27; i++){if(vis[i]!=0 && vis[i]%n!=0) flag=1;}if(flag)cout<<"NO"<<endl;elsecout<<"YES"<<endl;return ;}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);#ifdef TDS_ACM_LOCALfreopen("D:\\VS code\\.vscode\\testall\\in.txt", "r", stdin);freopen("D:\\VS code\\.vscode\\testall\\out.txt", "w", stdout);#endifint T;cin>>T;while(T--)solve();return 0;}

B. Power Sequence

题目传送门

Power Sequence

题目大意

给你一个长度为n的数组a,下标从000到n1n-1n−1,你可以重新排列数组a的顺序,然后对数组中的任意一个元素+1或者-1,其花费都是1,求最小花费,使得ai=cia_i=c_iai​=ci​

思路

枚举C的取值,当代价开始增加时退出,增加前的代价即为最小代价

AC Code

#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<cmath>using namespace std;#define endl "\n"#define INF 0x3f3f3f3f3f3f3f#define int long long// #define TDS_ACM_LOCALconst int N=1e5 +9;int n, a[N];void solve(){cin>>n;for(int i=1; i<=n; i++) cin>>a[i];sort(a+1, a+1+n);int ans=INF, tep;for(int c=1; 1; c++){tep=a[1]-1;int mj=c;for(int j=2; j<=n; j++){tep+=abs(a[j]-mj);if(tep>ans)break;mj*=c;}if(tep>ans)break;ans=tep;}cout<<ans<<endl;return ;}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);#ifdef TDS_ACM_LOCALfreopen("D:\\VS code\\.vscode\\testall\\in.txt", "r", stdin);freopen("D:\\VS code\\.vscode\\testall\\out.txt", "w", stdout);#endifsolve();return 0;}

C. Multiples of Length

题目传送门

C. Multiples of Length

题目大意

给你一个长度为n的数组,需要使用三步将数组中的每个元素变为0
每步的操作为,选择一个区间,对区间中的值进行加减k的操作,但是k必须为区间的长度的倍数

思路

当n=1的时候很简单,直接第一步减到0即可,后两次操作0
不为0时
很明显不会让你一步就完成,所以可以操作前n-1个
可以考虑第一步操作前n-1个数使其变成整个数组的倍数
第二步操作第n个数使其变成0
第三步选择整个区间变成0

对前面n-1个数操作为ai+k(n1)a_i+k(n-1)ai​+k(n−1),即为kn+aikkn+a_i-kkn+ai​−k,所以可以直接k取aia_iai​,使得每位都为n的倍数

AC Code

#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define endl "\n"#define INF 0x3f3f3f3f#define int long long// #define TDS_ACM_LOCALconst int N=1e5 +9;int n, a[N];void solve(){cin>>n;for(int i=1; i<=n; i++) cin>>a[i];if(n==1){cout<<"1 1"<<endl;cout<<-a[1]<<endl;for(int i=2; i<=3; i++){cout<<"1 1"<<endl;cout<<"0"<<endl;}return ;}cout<<"1 "<<n-1<<endl;for(int i=1; i<=n-1; i++){cout<<a[i]*(n-1)<<" ";a[i]+=(n-1)*a[i];}cout<<endl;cout<<n<<" "<<n<<endl;cout<<-a[n]<<endl;cout<<"1 "<<n<<endl;for(int i=1; i<=n-1; i++){cout<<-a[i]<<" ";}cout<<"0"<<endl;return ;}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);#ifdef TDS_ACM_LOCALfreopen("D:\\VS code\\.vscode\\testall\\in.txt", "r", stdin);freopen("D:\\VS code\\.vscode\\testall\\out.txt", "w", stdout);#endifsolve();return 0;}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。