SUM-ACM——VJ天梯训练赛
这次比赛我暴露了很多问题,一些模拟还有贪心思路错误。
补题如下:
E - E
题解:一道模拟题,我的问题在于不知道怎么替换下一个,就从0开始遍历数组然后数组的值--,如果为零就continue下一个,这个问题在于无法遍历完所有的数,会少算。其实只需要把接完水的按顺序到下一个就可以了,这样还有一个问题在于有可能前面的数一直在接水接到最后,这样的话我们只需要把剩下没有接完的找它的最大值就可以了。
题目如下:

代码如下:
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int v[100000];
int main ()
{
ios::sync_with_stdio(false);
int n,m;
int t= 0;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>v[i];
}
int q = m;
while(q<=n)
{
for(int i=0;i<m;i++){
v[i]--;
if(!v[i])
{
v[i]=v[q++];//这里就可以按照顺序让下一个接水,这个是我的不懂之处,我只想着每一个人接水就加一但是忽略了前面没有接完,或者中间没有接完的情况,思路混乱。
}
}
t++;
}
for(int i=1;i<m;i++){
if(v[i]>v[0])
v[0]=v[i]; //这里可以找出剩下没有接水完的里面的最大的接水数
}
cout<<t+v[0]; //求和
}
F - F
题解:由题目可知这个数必须为2的幂的形式,且不能为0,那么这个数不可能为奇数,奇数输出-1即可,然后分析题目的意思,这个数是由不同的正整数得到的也就是说明它的幂是不一样的数,那么我们只需要把这个数化成二进制的形式然后对应的位置乘2的数相加即可。
题目如下:

代码如下:
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main ()
{
int n;
vector <int> v;
int p=1;
cin>>n;
int t=n;
if(n%2!=0)
{
cout<<-1;
return 0;
}else
{
while(n>0)
{
if(n%2!=0)
{
v.push_back((n%2)*p);
}
p*=2;
n/=2;
}
}
if(v.size()==0)
{
cout<<-1;
return 0;
}
int sum = 0;
for(int i=v.size()-1;i>=0;i--){
sum+=v[i];
}
if(sum!=t)
{
cout<<-1;
return 0;
}
for(int i=v.size()-1;i>=0;i--){
cout<<v[i]<<" ";
}
}
**K - K**
题解:一道双端队列的题目,之前没有学习过,比赛的时候只能哈希暴力拿了10分,双端队列可以让最后的数和前面的数关联起来,这道题,前面的数和最后一个插入的数的差大于86400的话,最前面的数弹出,放入下一个元素,以此类推。
题目如下:

代码如下:
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n;
int v[100005];
int ans;
struct Node{
int t;
int x;
Node(int a,int b){
t=a,x=b;
}
};
deque<Node>q;//双端队列
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
int t,k,x;
scanf("%d%d",&t,&k);
for(int j=1;j<=k;j++){
scanf("%d",&x);
if(!v[x]) ans++;//新增国籍
v[x]++;//该国籍人数增加
q.push_back(Node(t,x));//入队
}
while(t-q.front().t>=86400){//离开区间
v[q.front().x]--;//该国籍人数减少
if(!v[q.front().x]) ans--;//这个国籍没人了,总数减少
q.pop_front();//出队
}
printf("%d\n",ans);
}
return 0;
}
SUM-ACM——VJ天梯训练赛的更多相关文章
- 2018牛客网暑假ACM多校训练赛(第十场)D Rikka with Prefix Sum 组合数学
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-D.html 题目传送门 - https://www.n ...
- 2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-H.html 题目传送门 - https://www.n ...
- 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...
- 2018牛客网暑假ACM多校训练赛(第五场)F take 树状数组,期望
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-F.html 题目传送门 - https://www.no ...
- 2018牛客网暑假ACM多校训练赛(第四场)B Interval Revisited 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-B.html 题目传送门 - https://www.no ...
- 2018牛客网暑假ACM多校训练赛(第四场)E Skyline 线段树 扫描线
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-E.html 题目传送门 - https://www.no ...
- 2018牛客网暑假ACM多校训练赛(第四场)A Ternary String 数论
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-A.html 题目传送门 - https://www.no ...
- 2018牛客网暑假ACM多校训练赛(第十场)F Rikka with Line Graph 最短路 Floyd
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-F.html 题目传送门 - https://www.n ...
- 2018牛客网暑假ACM多校训练赛(第八场)H Playing games 博弈 FWT
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round8-H.html 题目传送门 - https://www.no ...
- 2018牛客网暑假ACM多校训练赛(第七场)I Tree Subset Diameter 动态规划 长链剖分 线段树
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round7-I.html 题目传送门 - https://www.n ...
随机推荐
- Java8 Lambda表达式入门
可能很多人都听说过java8的新特性----Lambada表达式,但可能很多人都不知道Lambda表达式到底有什么用,下面我带大家理解一下Lambada表达式. 在平时的编程中,我们常常会用到匿名内部 ...
- HttpClient 发送表单
基础代码 只包含最简单的代码,不包含乱码解决.文件上传. import org.apache.http.Consts; import org.apache.http.HttpEntity; impor ...
- wordpress博客系统
wordpress博客系统 LNMP:Linux+nginx+mysql+php 一个操作系统+web网站+一个数据库存放数据+后端编程语言 基于红帽操作系统来搭建 1.需要一个本地yum仓库 [ro ...
- c# 拖拽列表顺序 | 拖拽合并分组 | 移除分组功能
动图演示: 背景: 一开始做功能的时候没有增加排序的索引(sort-index),后来要求做拖拽排序功能:所以写了这个不需要初始排序就可以完成的拖拽功能:如果是table表格排序逻辑和这个相似,这里拿 ...
- [SWPUCTF 2021 新生赛]easy_sql
这道题呢就是很简单的sql注入,我们直接用sqlmap来跑. 首先我们打开页面可以看见提示,参数为wllm **然后我们启动虚拟机,输入sqlmap的命令:sqlmap -u "url地址/ ...
- 使用 OpenTelemetry 构建可观测性 03 - 导出
上一个博文中,我提到如何使用 OpenTelemery 的特定语言 API 来收集遥测数据,包含手动和自动的埋点技术,这很重要!但是,收集遥测数据只是解决方案的第一步. 你需要把遥测数据路由转发到其他 ...
- mybatis中的useGeneratedKeys="true"
Springboot中 Mybatis 配置文件 Mapper参数useGeneratedKeys="true" keyProperty="id"useGene ...
- python生成随机四位数和AttributeError: module 'random' has no attribute 'sample'
python生成随机四位数和AttributeError: module 'random' has no attribute 'sample' ## AttributeError: module 'r ...
- 【UnityTips】如何自定义脚本模版
[UnityTips]如何自定义脚本模版 通常我们创建新脚本时大家看到的是这个样子: using System.Collections; using System.Collections.Generi ...
- Cython编译报错“numpy/arrayobject.h: No such file or directory”解决方案
问题背景 Cython是用来加速Python程序性能的一个工具,其基本使用逻辑就是将类Python代码(*.pyx扩展格式)编译成\(*.c,*.so\)动态链接库文件,然后就可以在正常的Python ...