cf 交互题

今天cf遇到了交互题,这个交互题的算法很很很简单,但是在交互上卡了,导致交上的代码都不算罚时。(更伤心了。

所以,现在写一下交互题的做法,印象深刻嘛。

交互题,就是跟机器进行交互。你代码运行程序发出的东西会影响机器向你传来的东西,即输入跟上次输出有关系。

对于c++,要用

flush(stdout);
// 或者
cout.flush();
// 或者
cout<<endl;

使用这些主要是为了:刷新标准输出缓冲区,让之前输入可能得到的输出序列刷新,得到新的输出序列。

如何做题?

传统算法题的交互相当于跟已经输入的冷漠的数据进行交互,但是交互题相当于跟一个人进行交谈。注意刷新缓冲区和,算法逻辑跟传统的一样。其实,还是要做题,我没做题前,感觉交互题不就是记得刷新一下缓冲区的么,其他有什么区别?,但在实际中感觉还是有一点不一样。

image-20230912012523365

在div2 897场的C题,就是一道交互题,是在cf赛中第一次遇到。读完题感觉算法就有了:读入S进行记录,从0开始递增判断是否在S里,第一个不在S里的数输出,之后输入什么,就输出什么就行。

这一题把交互去掉,其实就是一个很简单的博弈题。但是,这个交互我写错了,我把他当作传统题来写了:找到第一个不在S里的数输出,之后输入,然后判断输出-1结束。

void solve() {int n; cin>>n;vector<int> a(n);map<int,int> mii;for(auto &t: a) cin>>t,mii[t] = 1;int y;int sd = 0;while(mii[sd] == 1) sd++;cout<<sd<<'\n';fflush(stdout);cin>>y;if(y == -1) return;cout<<y<<'\n';fflush(stdout);puts("");cin>>y;if(y == -1) return ;
}

但是缺忘记Bob即使会失败但是他可能还会去尝试。这点跟传统算法题不一样,传统博弈都是每个人都是最优的策略。这个感觉Bob笨笨的。(

void solve() {int n; cin>>n;vector<int> a(n);map<int,int> mii;for(auto &t: a) cin>>t,mii[t] = 1;int y;int sd = 0;while(mii[sd] == 1) sd++;while(1) {cout<<sd<<endl;// cout<<st<<'\n'; fflush(stdout); # 都可以cin>>y;if(y == -1) return;sd = y;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/106992.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android MeidiaCodec之OMXPluginBase与QComOMXPlugin实现本质(四十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

JavaScript中的事件捕获(event capturing)和事件冒泡(event bubbling)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 事件捕获和事件冒泡⭐ 事件捕获&#xff08;Event Capturing&#xff09;示例&#xff1a; ⭐ 事件冒泡&#xff08;Event Bubbling&#xff09;示例&#xff1a; ⭐ 应用场景⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开…

Python绘图系统16:动态更新tkinter组件

文章目录 前情提要源代码模式输入序列源码 Python绘图系统&#xff1a; &#x1f4c8;从0开始的3D绘图系统&#x1f4c9;一套3D坐标&#xff0c;多个函数&#x1f4ca;散点图、极坐标和子图自定义控件&#xff1a;极坐标&#x1f4c9;绘图风格&#x1f4c9;风格控件图表类型和…

腾讯音乐基于 Apache Doris + 大模型构建全新智能数据服务平台

当前&#xff0c;大语言模型的应用正在全球范围内引发新一轮的技术革命与商业浪潮。腾讯音乐作为中国领先在线音乐娱乐平台&#xff0c;利用庞大用户群与多元场景的优势&#xff0c;持续探索大模型赛道的多元应用。本文将详细介绍腾讯音乐如何基于 Apache Doris 构建查询高效、…

浅谈前后端分离的网络拓扑

前后端分离大体分为两种拓扑结构&#xff0c;前端和后端通过开放对外端口的拓扑结构和只有前端开放端口的拓扑结构 前端和后端通过开放对外端口的拓扑结构 比如说前端通过 80 端口对外提供服务&#xff0c;后端通过 8080 端口对外提供服务&#xff0c;前端和后端搭建在同一台服…

Mybatis-Plus 使用教程

01-Mybatis-Plus介绍 1.1 什么是mybatis-plus 官网: 简介 | MyBatis-Plus MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 1.2 官方愿景 1.3 特性 无侵入&…

vue2配置环境变量并且nginx运行成功

需求&#xff1a;我在vue项目配置了生产环境和开发环境&#xff0c;之后通过proxy代理的方式把地址转发到真实的服务器地址上用于请求接口&#xff0c;之后把项目打包后上传到nginx上&#xff0c;之后接口报错404&#xff0c;但是本地运行是可以访问的&#xff0c;找了很久终于…

腾讯云centos7.6安装部署备忘

1.Mysql 1.1 安装mysql wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server 1.1.1 安装后重启 service mysqld restart 1.1.2 初次安装mysql&#xff0c;root账…

linux服务器内服务访问域名Name or service not know

目录 linux服务器内服务访问域名Name or service not know 1.前言2.排查是不是这个域名无法访问2.1服务内ping 这个域名2.2在浏览器打开这个域名2.3服务内ping 这个域名所对应的ip2.4在服务器内配置host 总结参考 文章所属专区 项目问题解决 1.前言 linux服务器内服务访问域名…

算法通关村第十九关:青铜-动态规划是怎么回事

青铜挑战-动态规划是怎么回事 动态规划&#xff08;简称DP&#xff0c;Dynamic Programming&#xff09;&#xff1a;最热门、最重要的算法之一。面试中大量出现&#xff0c;整体偏难。 1. 热身&#xff1a;重复计算和记忆化搜索&#xff08;如何说一万次"我爱你"&…

人离自动断电设备的功能要求

人离开自动断电石家庄光大远通电气有限公司用电器待机能耗往往是一种不易被发现的“隐藏的浪费”&#xff0c; 如果将一户家庭的空调、洗衣机、电视、微波炉、电饭煲五类电器进行计算&#xff0c;待机功率在12W到15W&#xff0c;待机能耗0.2度到0.33度电。每年能耗73度到124.45…

“交叉轮”轮融资后,哪吒汽车能否脚踏“风火轮”续写逆袭故事?

2023年的新能源汽车江湖&#xff0c;烟波浩渺的水面下暗潮汹涌。 从特斯拉年初打响降价第一枪&#xff0c;降价潮至今未见尾声。9月刚至&#xff0c;小鹏汽车、零跑汽车又推出了调价政策。 这一背景下&#xff0c;车企内卷加剧是必然。年初&#xff0c;哪吒汽车联合创始人、C…