• 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
  • 相关阅读:
    【测试总结】测试时如何定位一个bug?是前端还是后端?
    Oracle-AWR快照无法自动生成问题分析
    县域电商数字化转型
    Spark SQL数据源 - Hive表
    wpf 简单实验 数据更新 列表更新
    2023第二届金育杯金融智能投顾大赛全国总决赛圆满完成
    英语——分享篇——每日200词——1601-1800
    Python打怪升级(4)
    解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
    Elasticsearch7.17.3+分布式搜索引擎
  • 原文地址:https://blog.csdn.net/qq_63432403/article/details/132829668