1
13
2016
2

codeforces 100685J Just Another Disney Problem

http://codeforces.com/problemset/gymProblem/100685/J

这个交互题实在太过JB。。。。感觉不写一下对不起自己。。。

题意:给你n(n<=1000)个元素a1-an,他们之间存在cmp,但是cmp函数是不可递推的。现在你有不超过1W次的机会询问ai与aj的cmp函数,要求出一个长度为n的序列,满足cmp(ax[i],ax[i+1])=true。恩大概就这个意思。

一开始方向想错了,想什么图论拓扑找最长链这种东西_(:зゝ∠)_居然没有注意10000大概就是nlog的复杂度。nlog,有序,这TM不就是快拍吗_(:зゝ∠)_然后问题来了,手打快排效率不稳定,很难到达刚好nlog,c++STL的sort也不稳定,归并大概可以吧(没试过),但实际上有一个STL叫stable_sort可以刚好nlog次,上这个就行了

 

#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int a[1005];
int n;
char c[10];
bool cmp(int k1,int k2){
    printf("1 %d %d\n",k1,k2);
    cout.flush();
    scanf("%s",&c);
    if(c[0]=='Y')return true;
    if(c[0]=='N')return false;
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)a[i]=i;
    stable_sort(a+1,a+1+n,cmp);
    printf("0");
    for(int i=1;i<=n;i++)printf(" %d",a[i]);
}
Category: codeforces | Tags: shi | Read Count: 2112

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com