• cf 交互题


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

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

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

    对于c++,要用

    flush(stdout);
    // 或者
    cout.flush();
    // 或者
    cout<<endl;
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    如何做题?

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

    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 ;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    但是缺忘记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<
    		cin>>y;
    		if(y == -1) return;
    		sd = y;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    go语言学习之旅之Go 语言指针
    React基础 (3)
    ICC2分析时序的神器 analyze_design_violations
    [NOIP2012 提高组] 开车旅行
    js之页面列表加载常用方法总结
    Maven中的小学问(版本问题、打包问题等)
    【Elasticsearch教程4】Mapping 动态映射
    【Java配置文件】properties文件乱码解决
    第2章 Java并发机制的底层实现原理
    杂谈:花样滑冰智能解析系统与基于骨骼点数据的串烧
  • 原文地址:https://blog.csdn.net/qq_63432403/article/details/132829668