1584D - Guess the Permutation & 交互题入门

这篇博客介绍了交互题的基本概念,并以1584D为例,详细讲解如何在40次询问内解决一个关于数组逆序对的交互问题。通过二分查找和性质分析,确定数组的反转起点和终点,从而找到关键参数。
摘要由CSDN通过智能技术生成

1584D - Guess the Permutation & 交互题入门

一、 交互题简介

第一次做交互题,用了大概半天时间学习了交互题的概念和大致做法

交互题跟一般题相反, 一般题目是系统给你输入数据, 让你输出答案, 系统判断答案是否正确

而交互题则类似于电视节目中的猜数字, 你可以理解为后台有一些数据, 但是需要你去询问, 系统会根据你的询问给你答案, 需要你在规定的询问次数内得到答案并输出

主要的思想是二分、三分、随机数,难点在于几乎无法本地自测

交互题是special judge中的一种, 交互题的大概写法是:

// 问系统params, 返回系统给你的答案
T ask(T params ...) {
   
	cout << params << endl; // 输出你要问的问题 给系统
    cout.flush(); // 清空缓存
    // System.out.flush() java
    // fflush(stdout) C
    // stdout.flush() py
    cin >> ans;
    return ans;
}

以1584D为例, 介绍下这道题怎么做

二、 题目

有一个长度为n的数组, n<1e9, 初始时是自然排列. 后台有3个参数 i , j , k i, j, k i,j,k, 对这个数组的 [ i , j − 1 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值