这次比赛我暴露了很多问题,一些模拟还有贪心思路错误。

补题如下:

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天梯训练赛的更多相关文章

  1. 2018牛客网暑假ACM多校训练赛(第十场)D Rikka with Prefix Sum 组合数学

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-D.html 题目传送门 - https://www.n ...

  2. 2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-H.html 题目传送门 - https://www.n ...

  3. 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...

  4. 2018牛客网暑假ACM多校训练赛(第五场)F take 树状数组,期望

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-F.html 题目传送门 - https://www.no ...

  5. 2018牛客网暑假ACM多校训练赛(第四场)B Interval Revisited 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-B.html 题目传送门 - https://www.no ...

  6. 2018牛客网暑假ACM多校训练赛(第四场)E Skyline 线段树 扫描线

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-E.html 题目传送门 - https://www.no ...

  7. 2018牛客网暑假ACM多校训练赛(第四场)A Ternary String 数论

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round4-A.html 题目传送门 - https://www.no ...

  8. 2018牛客网暑假ACM多校训练赛(第十场)F Rikka with Line Graph 最短路 Floyd

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-F.html 题目传送门 - https://www.n ...

  9. 2018牛客网暑假ACM多校训练赛(第八场)H Playing games 博弈 FWT

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round8-H.html 题目传送门 - https://www.no ...

  10. 2018牛客网暑假ACM多校训练赛(第七场)I Tree Subset Diameter 动态规划 长链剖分 线段树

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round7-I.html 题目传送门 -  https://www.n ...

随机推荐

  1. linux server Vue 或其它单页面项目站点 nginx 实施部署

    # nginx vue 处理前台路由 history 模式刷新 404 的问题 location / { try_files $uri $uri/ /index.html; if ($uri ~* . ...

  2. MySQL学习笔记-约束

    约束 约束是作用于表中字段上的规则,用于限制存储在表中的数据,保证数据库中数据的正确.有效和完整. 一. 常用的约束 约束作用于表中的字段,可以在创建表或修改表的时候添加约束. AUTO_INCREM ...

  3. RabbbitMQ RabbitListener使用IP动态队列 Attribute value must be constant

    在RabbitMQ消息队列使用 @RabbitListener 接收消息,队列名称使用常量命名,但是如果使用动态队列名称,比如根据系统 ip 命名队列名称. 获取服务器 IP /** * 获取服务器i ...

  4. linux系统下,jdk的安装和配置教程,以jdk-8u311为例

    1.官方下载 下载地址:https://www.oracle.com/ 本文以jdk8为例, 1)下载地址:https://www.oracle.com/java/technologies/downl ...

  5. C#.NET根据不同业务类别类型写入不同文件中,动态创建log4net实例验证

    C#.NET根据不同业务类别类型写入不同文件中,动态创建log4net实例验证 参考了:https://www.cnblogs.com/-dawn/p/8598566.html GetLog4netI ...

  6. vits-simple-api搭建

    根据vits-simple-api中文文档指南自行搭建后端 以下步骤均在windows平台cpu推理搭建为例 选择你的vits模型(注意是vits!不是So-Vits Bert Vits2 Gpt V ...

  7. 项目管理--PMBOK 读书笔记(5)【项目范围管理】

      知识点: 1.范围管理计划与需求管理计划:       需求大于范围 2.项目管理的成果线: 3.收集需求的跟踪:       需求跟踪矩阵(RTM):溯源.商业价值.监控过程输出 4.项目范围说 ...

  8. 阿里云OSS图片上传和显示注意点

    1. java.lang.IllegalArgumentException: The object key "/image-业务名称/20230818/20230818-订单号参数-acci ...

  9. 彻底解决IDEA Jrebel 错误找不到口令文件的问题

    本来我的Jrebel也是好用的,突然就变成了这个样子,网上针对这个问题有很多帖子,但是每次新建项目后我都需要去解决一下这个问题,这我不能忍,经过一整天的百度和测试终于找到了原因并解决这个问题,伸手党直 ...

  10. Linux-swap管理

    什么是Swap Swap:交换空间,即虚拟内存,用于解决内存不足的问题. 在内存不足的时候,会将内存中不常使用的部分存入硬盘,使得内存得以腾出空间供新的程序使用. 那么,虚拟内存即为硬盘中的部分. S ...