UOJ Easy Round #8 T1 打雪仗 题解
题目链接:
【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 打雪仗 题解相关推荐
- 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 ...
- Codeforces Round #747 (Div. 2)题解
Codeforces Round #747 (Div. 2)题解 (本博客将持续更新以后每场CF div2的题解,喜欢ACM.OI的小伙伴记得点个关注哟) 昨天夜晚刷网络流刷入迷了,渐渐就忘记了我还要 ...
- Codeforces Round #789 (Div. 2)题解
Codeforces Round #789 (Div. 2)题解 A. Tokitsukaze and All Zero Sequence 原题链接 算法标签 贪心 排序 思路 情况一:数组存在零 → ...
- Codeforces Round #514 (Div. 2)题解
Codeforces Round #514 (Div. 2)题解 A 喵,直接模拟. B 枚举所有盖章时的,合法的,左上角的位置.能盖的话就盖一下.最后check一下图案是否相等即可 C 一轮一轮的扔 ...
- Codeforces Round #182 (Div. 1)题解【ABCD】
Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...
- 【算法题解】Codeforces Round #817 (Div. 4)题解
文章目录 Codeforces Round #817 (Div. 4)题解 A. Spell Check B. Colourblindness C. Word Game D. Line E. Coun ...
- Codeforces Round #748 (Div. 3) 题解 完整A~G
Codeforces Round #748 (Div. 3) 题解 A. Elections 题意 已知竞选中三个候选人的当前得票数 a , b , c a,b,c a,b,c,现在可以增加任何一个人 ...
- Codeforces Round #533 (Div. 2)题解
link orz olinr AK Codeforces Round #533 (Div. 2) 中文水平和英文水平都太渣..翻译不准确见谅 T1.给定n<=1000个整数,你需要钦定一个值t, ...
- Codeforces Round #734 (Div. 3) 题解
Hello大家好,今天给大家带来的是 Codeforces Round #734 (Div. 3) 的全题目讲解. 本文链接:https://www.lanqiao.cn/questions/2040 ...
最新文章
- mysql 存储过程逻辑表达 and_MySQL - 存储过程 (二)- 逻辑判断语句
- 如何从命令行重新加载.bash_profile?
- binary hacks读数笔记(共享库)
- 基于Simulink的高速跳频通信系统抗干扰性能分析
- mysql配置不成功_mysql 5.7.17 zip安装配置教程 mysql启动失败的解决方法
- 1.3编程基础之算术表达式与顺序执行(20题)-2022.02.26
- jQuery Select操作大集合
- Datatables + Bootstrap
- dubbo调用服务出现如下异常
- linux wqy字体安装,给openSUSE安装文泉驿字体
- 使用Python GDAL库对高分三号全极化SAR影像进行RPC几何校正(PolSARpro格式)
- python pptx文本提取
- CTOlib码库介绍(GitHub热门项目收录网站)
- 小旋风蜘蛛池让搜狗收录快速增长
- 使用代理服务器爬取网站
- htc one x android5.0,HTC One X S720e 刷机包 FlymeOS4.5.4.2R For One X 安卓5.1.1 XTS高级设置 纯净无推广...
- 帝国列表页 pHP原代码页,帝国模板列表页和内容页的伪静态规则实现方法
- java8日期时间格式化与解析
- Python+MATLAB处理气象站点数据
- 十一长假宅到底,Wi-Fi可能伤不起