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 ...
随机推荐
- vue绑定对象,绑定的值不改变的问题
在使用vue结合elmentui的table组件,对数组绑定,需要编辑数组里一些属性的值.我的情况是,需要在打开这个表时,根据条件插入一些对象到table里,经测试,到这里是没问题的,可以显示新插入的 ...
- golang 无向简单图邻接多重表
package main import "fmt" type MultipleEdgeNode struct { iVex int iLink *MultipleEdgeNode ...
- ubuntu docker 解决sudo权限问题
#如果还没有 docker group 就添加一个:$sudo groupadd docker#将用户加入该 group 内.然后退出并重新登录就生效啦.$sudo gpasswd -a ${USER ...
- docker资源限制与数据持久化
1. docker简介和核心概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使 ...
- Python3基本语法(新)
目录 基本语法 输出print() 格式化输出 标识符 import关键字 保留字(关键字) 注释 多行注释 1.单引号(''') 2.双引号(""") 缩进 空行 同一 ...
- lazyload图片懒加载
安装 npm i -S vue-lazyload 在src/main.js文件中添加如下内容 import VueLazyload from 'vue-lazyload' Vue.use(VueLaz ...
- ETL工具-nifi干货系列 第十八讲 nifi Funnel实战教程
1.Funnel (漏斗),Funnel是 NiFi 组件,用于将多个连接中的数据合并到一个连接中. 使用场景:nifi中的Funnel组件用于合并多个数据流并将它们传递到下游处理器.它可以将来自不同 ...
- docker on windows v19 红色启动不了
遇到: error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/containers/json: open //./ ...
- Vue学习:5.v-bind使用
第一节算是对v-bind的粗略了解,仅仅是列举了v-bind的使用.这一节将更详细的了解v-bind的具体用法. v-bind是 Vue.js 中常用的指令之一,用于动态地绑定属性或者表达式到 HTM ...
- 三月二十一日 安卓app个人作业开发
已经完成了 登录 和 注册逻辑 目前还有 提交打卡记录 的 开始时间 和 结束时间没有弄好 还有个人打卡记录的显示问题 并且我希望增加 修改个人密码 显示个人信息 退出登录 返回页面 删除打卡记录 的 ...