Codeforces Round #723 Div. 2个人代码
Codeforces Round #723 Div. 2个人代码
写出来四题,开心QWQ
A. Mean Inequality
题意:给一个数n,然后给2*n个数,让我们构造一个数列满足数列中任意一项都满足
bi≠(bi−1+bi+1)/2
其中满足相同的数最多n项
题目解析:只需要先将数组内的数排序,然后依次以1,n+1,2,n+2…这样输出。
#include<bits/stdc++.h>
const int N=1e9+7;
using namespace std;
int n,t;
int a[100005];
int main(){cin>>t;while(t--){cin>>n;for(int i=1;i<=2*n;i++){cin>>a[i];}sort(a+1,a+1+2*n);for(int i=1;i<=n;i++){cout<<a[i]<<" "<<a[i+n]<<" ";}cout<<endl;}return 0;
}
B. I Hate 1111
题意很简单,给一个t,后面t个数,让我们依次判断这t个数能否由11,111,1111,11111,111111,1111111…相加所得。
题目解析:首先推出1111=11 * 101,11111=111*100+11……,显然四个1以上的数字都能由11和111组成,我们只需要判断所给数能否被若干个111和11相加组成就行了。
其次当111的数量大于10的时候,显然能将每11个111变为111个11,所以111的数量一定是0到10个(其实算到这里已经可以全部枚举一遍来判断是否能组成)
由因为111%11=1,所以若通过111和11能组成n,则111的个数一定是n%11个,所以根据以上结论,我们可以写出以下代码
这题是个结论题,知道结论可以秒杀(跟a*b-a-b有关,后面有时间再来补),像我不知道结论花费了好多时间在前面的证明。
#include<bits/stdc++.h>
const int N=1e9+7;
using namespace std;
long long n,m,t,k;
int main(){cin>>t;while(t--){cin>>n;k=n%11;n-=k*111;if(n>=0&&n%11==0){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}return 0;
}
C2. Potions (Hard Version)
c1和c2一起写的,就是后悔贪心板子题
题意:给你n瓶药,喝完每个药你会获得一个健康值(可为负),你要从1喝到n(你可以选择喝或者不喝),但你要保证你的健康值大于0,求你可以喝的最大药品数量
题目解析:典型的后悔贪心,
先遍历一遍数组,喝下所有健康值为正数的药品,并记录在一个数组中
第二部再次遍历一遍数组,遇见负的则入队,如果喝下这瓶药使你的健康值为负数,则不要喝前面负的健康值最小的药(这里需要使用单调优先队列)
最后只需要将你喝下去的负健康值药瓶数和正健康值瓶数的药相加就可以啦!
(此题需要开long long)
(以下代码可通过c1和c2)
备注:此题上面两个遍历可以写道一个for循环当中,正数也可加入单调优先队列,只是个人为了便于自己理解才写成的两个for循环。
#include<bits/stdc++.h>
const int N=1e9+7;
using namespace std;
long long n,m;
long long sum,ans;
long long a[200005];
long long dp[200005];
priority_queue<long long, vector<long long>, greater<long long> > q;
int main(){int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]>=0){sum+=a[i];ans++;}dp[i]=sum;}sum=0;for(int i=1;i<=n;i++){if(a[i]<0){sum+=a[i];q.push(a[i]);if(sum+dp[i]<0){sum-=q.top();q.pop();}}}cout<<ans+q.size();return 0;
}
Codeforces Round #723 Div. 2个人代码相关推荐
- Codeforces Round #723 (Div. 2) D. Kill Anton 线段树 + 暴力
传送门 文章目录 题意: 思路: 题意: 给你一个只有ANTOANTOANTO四个字母的字符串,你每次可以交换相邻两个,花费为111,让后让你打乱字符串,使得将打乱的字符串还原为原来的字符串的花费最小 ...
- Codeforces Round #723 (Div. 2)
Codeforces Round #723 (Div. 2) 题号 题目 知识点 A Mean Inequality 签到 B I Hate 1111 思维 C Potions (Easy Versi ...
- Codeforces Round #723 (Div. 2) 个人题解
上1400辣! 传送门:https://codeforces.com/contest/1526 A. Mean Inequality 题意 给一个长度为偶数的数组,你需要重排这个数组,使得任意一个数不 ...
- Codeforces Round #723 (Div. 2)B. I Hate 1111(完全背包)
problem B. I Hate 1111 time limit per test1 second memory limit per test256 megabytes inputstandard ...
- Codeforces Round #723 (Div. 2)补题
水题,只需要将序列分成两部分即可,一部分是大的,一部分是小的. #include <cstdio> #include <iostream> #include <algor ...
- 【CF补题】【ABC】Codeforces Round #777 (Div. 2) C++代码
A. Madoka and Math Dad [题意]求连续不带零且不相等位数的最大十进制数,使其位数之和为 n.有t个测试n [思考]根据样例我们就可以推测答案是121212...或212121. ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
最新文章
- java swing 文件选择,设置默认文件选择路径,桌面路径
- ASP.NET 内置对象
- 获取C#中方法的执行时间及其代码注入
- 信息系统项目管理师范围管理
- [html] xml与html有什么区别?
- 使用Python批量压缩图片
- appium装上开始干嘛
- 计算机操作系统的分类
- adams齿轮齿条怎么定义接触,直齿轮adams接触(碰撞)仿真分析
- matlab数据拟合polyfit与polyval初等用法
- Android network框架分析之NetworkManagementService和netd交互深入分析(二)
- Swarm(bzz)软启动版本v.0.0-rc2
- Spring之Introductions(简介)应用
- 模仿元气森林:为什么会是画虎画皮难画骨?
- 【HNOI模拟By lyp】Day2
- Spring Security(一):最简单的Spring Security程序
- SAP_什么是BAPI
- 去哪儿攻略app v3.9.2 官方iphone版
- 受限玻尔兹曼机(RBM)学习笔记(四)对数似然函数
- revit 对计算机最低配置,Revit 软件对电脑配置的要求
热门文章
- KDD 2022 | 生命科学中的图神经网络:机遇和解决方案
- U8 销售订单对应的生产订单缴库情况执行报表
- android qq语音按钮,科技教程:如何在手机QQ中使用新版QQ语音进度条功能?
- OSSIM开源系统汉化解决方案
- 分类模型训练完成,却预测不准的原因
- 电脑右键新建没有txt文本
- 首位跨界艺术圈的链游平台:链游玩家与悦尚里达成战略合作
- 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(3)
- 竹海杂谈:利用proteus设计电路(实例:485通信)
- 基于VC++的心脏传导系统模拟器设计(2D虚拟心脏)