当前位置: 首页 > news >正文

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.lryc.cn/news/164449.html

相关文章:

  • 成都瀚网科技有限公司:抖音怎么绑定抖音小店才好?
  • 大数据组件-Flink环境搭建
  • Java——》synchronized互斥性
  • 第十章 数组和指针
  • JVM系列 运行时数据区
  • 软件测试/测试开发丨突破传统,革新测试:ChatGpt指引下的测试方案编写
  • JVM-垃圾回收器详解、参数配置
  • 计算机算法分析与设计(1)---求算法时间复杂性(手写例题)
  • MyBatisPlus 分页查询
  • Kafka3.1部署和Topic主题数据生产与消费
  • ICIF2023化工展首亮相,宏工科技解决方案助力制造升级
  • 本地部署kubesphere集群
  • HNU小学期工训-STC15单片机模型大作业实验报告
  • 【计算机网络】 TCP协议头相关知识点
  • 深度学习相关VO梳理
  • SpringMVC---CRUD实现
  • vue+elementUI el-select 自定义搜索逻辑(filter-method)
  • 数据库——事务
  • echarts折线图每段显示不同的颜色
  • 设计模式-单例模式(Singleton)
  • 优漫动游 常见的AI视频生成网站的官方网站:
  • Vue中数据可视化关系图展示与关系图分析
  • 【启扬方案】基于启扬安卓屏一体机的医疗手推车解决方案
  • JavaScript实现MD5加密的6种方式
  • 腾讯云和阿里云2核2G服务器租用价格表对比
  • 抖音无需API开发连接Stable Diffusion,实现自动根据评论区的指令生成图像并返回
  • MySQL(三)
  • 汽车级肖特基二极管DSS220-Q 200V 2A
  • maven jetty post 上传长度设置
  • LeetCode 面试题 03.03. 堆盘子