题目链接:

【UER #8】打雪仗

第一次做通信题,写篇\(blog\)加深印象。


首先分析题目,根据数据,最坏情况下\(m\approx \frac23n\)

刚开始时想着把进制压到更高进制输出,不过实现不来放弃了。

那么把\(2n\)分成一些长度为\(3\)的区间,对于\(1,2\)个字符,直接由小\(B\)告诉小\(A\)是否需要,如果需要则小\(A\)发送字符。

对于第\(3\)个字符,无论需不需要都由小\(A\)发出。

那么显然小\(B\)的输出长度正好为\(\frac23n\)。

对于小\(A\),最坏情况下没有一个有用的字符在第\(3\)个位置,则总长度为\(n+\frac13n=\frac43n\)

那么就可以愉快的通过此题了。

时间复杂度 \(O(n)\)

关于实现:


\(Alice.cpp:\)

#include <string>
#include <fstream>
#include <iostream>int n,m;
std::string s;int main()
{std::ifstream("alice.in")>>n>>m>>s;//文件指针用不来,反正输入量不大(xfor(int i=0;i<=1995;i+=3){if(std::cin.get()==49)std::cout<<s[i];if(std::cin.get()==49)std::cout<<s[i+1];//对应前2个字符,需要才输出。(std::cout<<s[i+2]).flush();//对于第三个字符,必须输出。//同时注意在输出之后立即清空缓冲区,让$Bob$可以接收。}(std::cout<<s[1998]<<s[1999]).flush();//最后2个单独处理,直接输出,影响不大。return 0;
}

\(Bob.cpp:\)

#include <string>
#include <fstream>
#include <iostream>int n,m;
bool v[2005];
std::string s;int main()
{std::ifstream Fin("bob.in");Fin>>n>>m;for(int i=1,x;i<=1000;++i)Fin>>x,v[x-1]=true;for(int i=0;i<=1995;i+=3){(std::cout<<v[i]<<v[i+1]).flush();//是否需要前2个字符if(v[i])s+=std::cin.get();if(v[i+1])s+=std::cin.get();char c=std::cin.get();if(v[i+2])s+=c;//第三个字符必须输入,防止影响后面。}if(v[1998])s+=std::cin.get();if(v[1999])s+=std::cin.get();//加上最后两个字符std::ofstream Fout("bob.out");Fout<<s<<'\n';//这里可以不flush,因为最后return 0了,自动清空缓存。return 0;
}

转载于:https://www.cnblogs.com/LanrTabe/p/10163699.html

UOJ Easy Round #8 T1 打雪仗 题解相关推荐

  1. UOJ Round #20 T1 A. 【UR #20】跳蚤电话(组合数+树形DP)

    UOJ Round #20 T1 A. [UR #20]跳蚤电话 题目大意 给出一棵树,求建出该树的不同操作方案数.建树方式如下:初始 S S S集合只有 1 1 1,操作 1 1 1为取已连的边 x ...

  2. Codeforces Round #747 (Div. 2)题解

    Codeforces Round #747 (Div. 2)题解 (本博客将持续更新以后每场CF div2的题解,喜欢ACM.OI的小伙伴记得点个关注哟) 昨天夜晚刷网络流刷入迷了,渐渐就忘记了我还要 ...

  3. Codeforces Round #789 (Div. 2)题解

    Codeforces Round #789 (Div. 2)题解 A. Tokitsukaze and All Zero Sequence 原题链接 算法标签 贪心 排序 思路 情况一:数组存在零 → ...

  4. Codeforces Round #514 (Div. 2)题解

    Codeforces Round #514 (Div. 2)题解 A 喵,直接模拟. B 枚举所有盖章时的,合法的,左上角的位置.能盖的话就盖一下.最后check一下图案是否相等即可 C 一轮一轮的扔 ...

  5. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  6. 【算法题解】Codeforces Round #817 (Div. 4)题解

    文章目录 Codeforces Round #817 (Div. 4)题解 A. Spell Check B. Colourblindness C. Word Game D. Line E. Coun ...

  7. Codeforces Round #748 (Div. 3) 题解 完整A~G

    Codeforces Round #748 (Div. 3) 题解 A. Elections 题意 已知竞选中三个候选人的当前得票数 a , b , c a,b,c a,b,c,现在可以增加任何一个人 ...

  8. Codeforces Round #533 (Div. 2)题解

    link orz olinr AK Codeforces Round #533 (Div. 2) 中文水平和英文水平都太渣..翻译不准确见谅 T1.给定n<=1000个整数,你需要钦定一个值t, ...

  9. Codeforces Round #734 (Div. 3) 题解

    Hello大家好,今天给大家带来的是 Codeforces Round #734 (Div. 3) 的全题目讲解. 本文链接:https://www.lanqiao.cn/questions/2040 ...

最新文章

  1. mysql 存储过程逻辑表达 and_MySQL - 存储过程 (二)- 逻辑判断语句
  2. 如何从命令行重新加载.bash_profile?
  3. binary hacks读数笔记(共享库)
  4. 基于Simulink的高速跳频通信系统抗干扰性能分析
  5. mysql配置不成功_mysql 5.7.17 zip安装配置教程 mysql启动失败的解决方法
  6. 1.3编程基础之算术表达式与顺序执行(20题)-2022.02.26
  7. jQuery Select操作大集合
  8. Datatables + Bootstrap
  9. dubbo调用服务出现如下异常
  10. linux wqy字体安装,给openSUSE安装文泉驿字体
  11. 使用Python GDAL库对高分三号全极化SAR影像进行RPC几何校正(PolSARpro格式)
  12. python pptx文本提取
  13. CTOlib码库介绍(GitHub热门项目收录网站)
  14. 小旋风蜘蛛池让搜狗收录快速增长
  15. 使用代理服务器爬取网站
  16. htc one x android5.0,HTC One X S720e 刷机包 FlymeOS4.5.4.2R For One X 安卓5.1.1 XTS高级设置 纯净无推广...
  17. 帝国列表页 pHP原代码页,帝国模板列表页和内容页的伪静态规则实现方法
  18. java8日期时间格式化与解析
  19. Python+MATLAB处理气象站点数据
  20. 十一长假宅到底,Wi-Fi可能伤不起

热门文章

  1. vue中脚手架设置自动打开浏览器打开后地址为http://0.0.0.0:8080/
  2. uni-app学习 style样式和三元运算符用法(三)
  3. Unity客户端开发面试题记录
  4. 新闻App详细开发流程和结构搭建
  5. 第十章:动态组件,插槽,自定义指令
  6. 宝岛探险(C语言 )(DFS+BFS)
  7. dom4j解析xml文件
  8. 正则去掉首尾空格以及首尾的
  9. 【调研学习】3.5mm耳机孔,PCM-WAV
  10. 【01Studio MaixPy AI K210】10.LCD