题目

通信题
A知道一个长为2n的01串,B知道n个位置
AB之间可以互相发送01字符,每个人所发不超m个
让AB互相通信,使B得到n个位置的具体值
n=1000 m=1350
子问题:m=1600

思路

4/3n<1350
把串分成三块,每块2/3n
让B告诉A最多所需的块,A把整块发给B
B把剩下所需的位置发给A,A回复所需的值
由于第一次减掉至少1/3n的询问,A在第二次只会发2/3n次,加上第一次的总共为4/3n
B发的总数为两块的长度,同为4/3n

代码

#include<bits/stdc++.h>
using namespace std;
char w[2050];
void pr(char s) {putchar(s);fflush(stdout);
}
int L[4],R[4];
int main() {FILE *fp=fopen("alice.in","r");int n,m;fscanf(fp,"%d%d%s",&n,&m,w+1);fclose(fp);int i;int block=667;L[1]=1; R[1]=block; L[2]=block+1; R[2]=block*2; L[3]=R[2]+1; R[3]=2*n; int x=getchar()-'0',y=getchar()-'0';x=x*2+y;for(i=L[x];i<=R[x];i++) pr(w[i]);for(i=1;i<L[x];i++) {y=getchar();if(y=='1') pr(w[i]);}for(i=R[x]+1;i<=2*n;i++) {y=getchar();if(y=='1') pr(w[i]);}
}
#include<bits/stdc++.h>
using namespace std;
char w[2050];
void pr(char s) {putchar(s);fflush(stdout);
}
void print(int x) {pr(x/2+'0'); pr((x&1)+'0');
}
int n,m,p[2050],is[2050],L[4],R[4];
int main() {FILE *fp=fopen("bob.in","r");int n,m,i;fscanf(fp,"%d%d",&n,&m);for(i=1;i<=n;i++) fscanf(fp,"%d",&p[i]),is[p[i]]=1;fclose(fp);int block=667,c1=0,c2=0,c3=0;for(i=1;i<=block;i++) c1+=is[i];for(i=block+1;i<=2*block;i++) c2+=is[i];for(i=block*2+1;i<=2*n;i++) c3+=is[i];L[1]=1; R[1]=block; L[2]=block+1; R[2]=block*2; L[3]=R[2]+1; R[3]=2*n; int x=0;if(c1>=333) x=1;if(c2>=333) x=2;if(c3>=333) x=3;print(x);for(i=L[x];i<=R[x];i++) w[i]=getchar();for(i=1;i<L[x];i++) {pr(is[i]+'0');if(is[i]) w[i]=getchar();}for(i=R[x]+1;i<=2*n;i++) {pr(is[i]+'0');if(is[i]) w[i]=getchar();}fp=fopen("bob.out","w");for(i=1;i<=n;i++) fprintf(fp,"%c",w[p[i]]);
}

【JZOJ 杂题选讲】【UER #8】打雪仗相关推荐

  1. [JZOJ]杂题选讲

    目录 1.aplusb 2.可见点数 3.射击 4.创世纪 5.长方形 6.连通块 7.Ede的新背包问题 8.模板串 9.Clock Sequence 10.硬币游戏 1.aplusb Descri ...

  2. 【JZOJ 杂题选讲】北大集训2019 n门问题

    题目 思路 首先我们考虑如何计算猜奖者所认为的概率 假设现在还有n扇门,第i扇有奖的概率是p[i]. 猜奖者选了第x扇门,主持人打开了第y扇门: 1.有p[x]的概率第x扇门就是有奖的,经过这次操作, ...

  3. 【JZOJ 杂题选讲】友谊

    题目 Description Flowey 是一朵能够通过友谊颗粒传播LOVE 的小花.它的友谊颗粒分为两种, 圆粒的和皱粒的,它们依次排列组成了一个长度为2m 的序列.对于一个友谊颗 粒的序列,如果 ...

  4. 20190509杂题选讲

    这次杂题选讲好多思维题神仙题啊= =顺便学了波线段树上二分= = Normal 题目大意戳这 CF1083C CDW讲的神仙题*1 题解戳这 AGC002E 我讲的题,是个人写的程序都比我写的程序跑得 ...

  5. [统计学笔记] 统计学计算题选讲(精华)

    统计学计算题选讲 第 1 题 某班级学生物理课程考试成绩分别为:              68  89  88  84  86  87  75  73  72  68              75 ...

  6. CSP难度的经典题目/有趣的思维题选讲(一)

    引言 这里讲到的难题是一部分非常典型的题目,但并不是所有.因此这并非是一个全面的知识列表,而只适合提高组同学用来提升能力和拓展视野. 这篇文章在很多地方讲述的不够详细和严谨,因为它的作用并非是题解,而 ...

  7. c语言兔子洞,数据结构水题选讲 - osc_y08db3kb的个人空间 - OSCHINA - 中文开源技术交流社区...

    [Ynoi2011]ODT \(O(nlog^2n)\) 的做法非常显然 直接把树重链剖分一下,每个点维护轻儿子的平衡树就行 但是这题 \(1e6\) 的数据范围使得 \(O(nlog^2n)\) 没 ...

  8. 2019 B站校招编程题选讲

    地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的协议 ping bilibili没有用到TCP协议, DNS是域名解析,ICMP就是pin ...

  9. 【算法练习】杂题混讲一:Acwing + 蓝桥杯练习

    一.牛的学术圈Ⅰ(二分) 如果不考虑参数L的影响,那就是一个纯纯的二分答案,问题在于如何处理参数L?,仔细读题,题目说了总共至多引用L篇,每篇论文至多引用1次,至多的意思是说可以引用也可以不引用. 那 ...

最新文章

  1. Ubuntu 16.04下Caffe-SSD的应用(二)——准备与处理VOC2007数据集
  2. 请在请求中携带deviceid参数_日常工作中最容易犯的几个并发错误,你中了几个?...
  3. unity3D游戏开发三之unity编辑器二
  4. go context之WithCancel的使用
  5. Unity 协程深入解析与原理
  6. 计算机科学中抽象的作用,抽象释义
  7. WebService可以远程调试调用
  8. graphpad分组百分比柱状图_Graphpad与SPSS完成分组柱形图教程
  9. 【转】写给支持和反对《完全用Linux工作》的人们
  10. 利用计算机名称共享打印机步骤,如何连接共享打印机汇总教程
  11. ProtoPie 学习
  12. 去你的35岁危机|ONES 人物
  13. 爬虫:Xpath定位
  14. php 获取扩展模块信息,查看PHP opcode扩展模块及Web服务
  15. Blender展UV插件:UVSquares
  16. 电信行业大数据应用的四个方向
  17. MATLAB 求解定积分和不定积分
  18. 常见网络聊天术语(中英文对照)
  19. axure 教务系统_【Axure原型推荐】第1期 在线教育小程序原型
  20. linux中解压.tgz, .tar.gz ,zip ,gz, .tar文件

热门文章

  1. awl伪装MAC地址进行多线程SYN攻击
  2. 13.荔枝派 zero(全志V3S)-gadget Mass Storage虚拟U盘
  3. Xcode4.6 自制iOS可用的 Framework
  4. Django中.py文件详解
  5. 2021年茶艺师(初级)考试题库及茶艺师(初级)试题及解析
  6. 特斯拉“炸”降,蔚来、小鹏、理想们的路就平坦了么?
  7. 双十一买联想拯救者刃7000P血亏,三个月不到反降了500RMB
  8. 动手学:深度学习Task2
  9. 参数use_sim_time
  10. centos8安装中文版man帮助手册