目录

  • T1、签到题(sort)

    • 传送门
    • Code
  • T2、送分题(queue)
    • 传送门
    • Code
  • T3、简单题(game)
    • 传送门
    • Code
    • 咕咕咕

T1、签到题(sort)

传送门

原题:LOJ 2767

Code

//2019/2/14
//50pts
#include<bits/stdc++.h>
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return x*f;
}
#define MN 1000005
int n,q,a[MN],pw2[35];
int d[MN][35];bool r[MN];
inline void solve()
{register int i,j;memset(r,0,sizeof r);int ret=0;r[n]=true;for(i=30;~i;--i){int ans=-1;for(j=1;j<=n;){if(r[j]){++j;continue;}int hr=d[j][i],k;for(k=j+1;!r[k-1]&&d[k][i]==hr;++k);if(r[k-1]){j=k;continue;}int tl=d[k][i],l;for(l=k+1;!r[l-1]&&d[l][i]==tl;++l);if(!r[l-1]) {puts("-1");return;}j=l;if(hr>tl){if(ans==-1) ans=1;if(ans==0) {puts("-1");return;}}else{if(ans==-1) ans=0;if(ans==1) {puts("-1");return;}}r[k-1]=true;}if(ans==1) ret+=pw2[i]; }printf("%d\n",ret);
}
int main()
{freopen("sort.in","r",stdin);freopen("sort.out","w",stdout);n=read();register int i,S,ans,j;pw2[0]=1;for(i=1;i<=30;++i) pw2[i]=pw2[i-1]<<1;for(i=1;i<=n;++i) a[i]=read();for(i=1;i<=n;++i) for(S=a[i],j=0;S>0;++j,S>>=1) d[i][j]=S&1;solve();q=read();register int p,val;while(q--){p=read();val=read();memset(d[p],0,sizeof d[p]);for(i=0;val>0;++i,val>>=1) d[p][i]=val&1;solve();}return 0;
}
/*只要考虑相邻两行的最高的不相同的位,记录一下每个位的情况即可2019/2/14 21:48~22:14
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return x*f;
}
#define MN 1000005
int n,q,d[MN][31],f[31][2];
int pw2[31];
inline void add(int x,int y)
{register int i;for(i=30;~i&&d[x][i]==d[y][i];--i);if(i==-1) return;++f[i][d[x][i]>d[y][i]];
}
inline void dec(int x,int y)
{register int i;for(i=30;~i&&d[x][i]==d[y][i];--i);if(i==-1) return;--f[i][d[x][i]>d[y][i]];
}
inline int solve()
{register int i,ret=0;for(i=0;i<=30;++i)if(f[i][0]>0&&f[i][1]>0) return -1;else if(f[i][1]>0) ret+=pw2[i];return ret;
}
int main()
{freopen("sort.in","r",stdin);freopen("sort.out","w",stdout);n=read();register int i,j,S;for(pw2[0]=1,i=1;i<=30;++i) pw2[i]=pw2[i-1]<<1;for(i=1;i<=n;++i) for(S=read(),j=0;S>0;++j,S>>=1) d[i][j]=S&1;q=read();for(i=2;i<=n;++i) add(i-1,i);printf("%d\n",solve());while(q--){int pos=read();if(pos>1) dec(pos-1,pos);if(pos<n) dec(pos,pos+1);memset(d[pos],0,sizeof d[pos]);for(S=read(),j=0;S>0;++j,S>>=1) d[pos][j]=S&1;if(pos>1) add(pos-1,pos);if(pos<n) add(pos,pos+1);printf("%d\n",solve());}
}

T2、送分题(queue)

原题:LOJ 2734 / 洛谷 如厕计划

传送门

Code

/*我们先考虑怎样的序列是满足条件的。不难发现,对于男生=女生的情况显然每次都是一男一女如厕,充要条件是,对于任何一个后缀,男生<=女生,这很显然而对于男生<女生的情况显然是无解的对于女生>男生的情况,我们可以把多出来的女生变成男生,使他满足上面的条件我们可以从头开始往后扫,只要当前位是女生,且往后的女生>男生,就把这个女生变成男生不难发现,满足条件的序列就是,对于任何一个后缀,男生<=女生换言之,就是从后往前的第i个女生的位置应该在从后往前的第2i个位置之后(不包括第2i个位置)从后往前扫,如果当前第i个女生的位置不对,就把她移到第2i个位置上,这样贪心很正确假设第i个女生和2i匹配,那么ans=max{Val_i=pos_i-2i}对每个复读串(设当前的长度为x,女生数为y)分别处理,那么每复读一次,每个女生的 Val值减少2y-x所以,如果2y-x>0只需考虑第一个复读串如果2y-x<0,只需考虑最后一个复读串当然如果已经考虑到了第n个女生,之后的女生Val<0,就不用再扫啦2019/2/14 题解写于2019/2/15 12:43
*/
#include<bits/stdc++.h>
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
inline ll read()
{ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return x*f;
}
#define MN 100005
std::string s[MN];
ll n,m,l,ans,x[MN];
void solve(std::string &s,int siz)
{for(int i=siz;i--;--l)if(s[i]=='F'&&n) --n,ans=max(ans,2*n+1-l);
}
int main()
{freopen("queue.in","r",stdin);freopen("queue.out","w",stdout);register int i,j,y;n=read(),m=read();l=n<<1;for(i=1;i<=m;++i) std::cin>>s[i],x[i]=read();for(i=m;i;--i){register int siz=s[i].size();for(j=y=0;j<siz;++j) y+=s[i][j]=='F';if((y<<1)-siz>=0){solve(s[i],siz);l-=(x[i]-1)*siz;n-=(x[i]-1)*y;if(n<=0)break;}else{l-=(x[i]-1)*siz;n-=(x[i]-1)*y;solve(s[i],siz);if(n<=0) break; }}return 0*printf("%lld\n",n>0?-1:ans);
}

T3、简单题(game)

传送门

原题:LOJ 2731

Code

咕咕咕

Blog来自PaperCloud,未经允许,请勿转载,TKS!

转载于:https://www.cnblogs.com/PaperCloud/p/10386177.html

FOI冬令营 Day 3相关推荐

  1. FOI冬令营 Day2

    目录 T1.直径(diameter) 传送门 Code T2.定价(price) 传送门 Code T3.排序(sort) 传送门 Code T1.直径(diameter) 传送门 Code //20 ...

  2. 2016 KidCraft冬令营 一起来玩Scratch + MineCraft

    翻阅你身边的计算机图书,总会找到一本在书脊上出现 "图灵教育 "logo的图书.图灵教育作为国内具有影响力的科技图书出版品牌,引进出版了很多计算机畅销图书.在多年的出版工作中,我们 ...

  3. 2018冬令营模拟测试赛(十八)

    2018冬令营模拟测试赛(十八) [Problem A]Table 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述&qu ...

  4. 2018冬令营模拟测试赛(九)

    2018冬令营模拟测试赛(九) [Problem A]王子 试题描述 不是所有王子都会遇见自己的中关村,主公,公主. 从前有个王子姓王,王王子遇到了一位美丽的公主,她的名字当然是公公主啦. 王王子对公 ...

  5. dji大疆机器人冬令营_2019RoboMaster高中生机器人冬令营火热进行中

    近日,2019年RoboMaster高中生机器人冬令营在深圳市大疆创新RoboMaster研发基地举行.来自人大附中.衡水中学.华中师范大学第一附属中学等全国顶尖中学的98名优秀高中生,从逾千名报名者 ...

  6. 字节跳动 Byte Camp 冬令营报名启动,高质量赛题带你线下备战 ICPC

    12月7日,字节跳动 Byte Camp 冬令营宣布回归,开启第三期训练营报名.Byte Camp 冬令营是针对 ACM国际大学生程序设计竞赛(ICPC),面向全球顶尖高校在校生举办的国际顶级训练营, ...

  7. 字节跳动冬令营报名启动,邀你一起备战ICPC世界总决赛!

    面向全球顶尖高校学生举办的国际顶级训练营--2020 字节跳动 ByteCamp 冬令营,启动全球报名了! 2020 字节跳动 Byte Camp 冬令营是针对ACM程序设计竞赛(ICPC),面向全球 ...

  8. wp:涅普冬令营(2021) 监听消息

    wp:涅普冬令营(2021) 监听消息 为数不多独立做出来的题,留个纪念 首先,网页下载附件 用wireshark打开 发现里面有很多"user7",结合题目"流量监听& ...

  9. ICPC训练联盟2021寒假冬令营(5)(部分题解):

    ICPC训练联盟2021寒假冬令营(5)(部分题解): A - Brainman Raymond Babbitt drives his brother Charlie mad. Recently Ra ...

最新文章

  1. python 字典代码_Python 字典(Dictionary)
  2. Flink State和容错机制
  3. linux编写一个简单的端口扫描程序,小弟我在linux下写了个简单的多线程端口扫描程序,运行时出现有关问题,请问一下(2)...
  4. ORACLE数据库 常用命令和Sql常用语句
  5. 进程调度 操作系统第二章知识点归纳总结
  6. 交换机端口mtu值最大_交换机 MTU
  7. win7 vmware虚拟机 中 mac系统无法上网
  8. [转]网上整理 Web JS 通用
  9. CDOJ 1157 数列(seq) 分块+线段树
  10. 74cms v5.0.1漏洞
  11. phpyun怎么采集_phpyun采集
  12. 为什么创业者要假装读过《从0到1》和《创业维艰》?
  13. Android OTA升级
  14. 链表Linked List
  15. 我的世界服务器信息显示等级,我的世界空岛服务器怎么查方块等级 | 手游网游页游攻略大全...
  16. ggplot2-为可视化建模2
  17. Maven 是什么东西?
  18. 零售-商品/门店管理系统 | 进销存系统
  19. 基于STM32的Flash擦除方式
  20. Jupyter Notebook(Anaconda)【快捷键】

热门文章

  1. E - 连连看 HDU - 1175(思维的深搜)
  2. mysql 数值型注入_SQL注入之PHP-MySQL实现手工注入-数字型
  3. python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别
  4. ERROR: Can't get master address from ZooKeeper; znode data == null
  5. 以太网供电技术/有源以太网技术POE简单介绍
  6. [机器学习] XGBoost参数调优完全指南(附Python代码)
  7. alexnet 结构_AlexNet的体系结构和实现
  8. 外联接、自联接与联合
  9. GRE tunnel源码分析之发送流程
  10. 超过50万的存款,该放同一个银行还是多个银行?