首页 > 其他分享 >Hello 2022 C

Hello 2022 C

时间:2022-10-21 22:13:31浏览次数:51  
标签:10 return int while 2022 ans const Hello

C. Hidden Permutations

对于置换我们知道他是几个环
我们手动模拟之后发现 他的环的位置 和出现的数是一置的
只需要出现的顺序倒序 再往左移一即可
然后我们对于每一个位置询问多次 直到出现循环
最坏情况会每个位置询问2次 q=2n

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
const int M = 998244353;
const int mod = 1e9+7;
#define int long long
int up(int a,int b){return a<0?a/b:(a+b-1)/b;}
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define pi acos(-1)
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);
int query(int x){
    cout<<"? "<<x<<endl;
    fflush(stdout);
    int res;cin>>res;
    return res;
}
void solve(){
    int n;cin>>n;
    vector<bool>st(n+10);
    vector<int>ans(n+10);
    for(int i=1;i<=n;i++){
        if(!st[i]){
            vector<int>v;
            vector<int>stt(n+10);
            while(1) {
                int t = query(i);
                if (stt[t]) {
                    std::reverse(v.begin(), v.end());
                    for (int j = 1; j < v.size(); j++) {
                        ans[v[j]] = v[j-1];
                    }
                    ans[v[0]] = v.back();
                    break;
                }
                v.push_back(t);
                st[t]=stt[t]=1;
            }
        }
    }
    cout<<"! ";
    for(int i=1;i<=n;i++)cout<<ans[i]<<' ';cout<<endl;
}
signed main(){
    //fast
    int t;t=1;cin>>t;
    while(t--) {
        solve();
    }
    return ~~(0^_^0);
}

标签:10,return,int,while,2022,ans,const,Hello
From: https://www.cnblogs.com/ycllz/p/16814932.html

相关文章

  • 备战python蓝桥杯等级考试系列1.输出hello world
    ​ ​编辑​编辑获取​python从初级到高级学习资料......
  • 【闲话】2022.10.21
    今天搬到了宾馆进行隔离!开始了快乐的集训生活!欢迎线下面基在路上打了两把雀食(真好玩然后推了一把虹龙洞好家伙三面疮了4次我好菜啊(笑接下来几天可能得到了外网加......
  • 江南信息学第七周练习20221021
    比赛链接  6436计算表达式的值 6656bth的年龄问题 6989比赛准备 7190猜数游戏1 7623粗心的小L2.0 7501因子个数1 7560数字和 7585兔子繁......
  • spark springboot 实例WordCount.scala20221021
    spark解析aa.txt   1、aa.txt           2、pom.xml<dependency><groupId>org.apache.spark</groupId>......
  • 前端笔记-内联框架-20221021
    HTMLIframe1.定义:用于在网页内显示网页。2.语法<iframesrc="URL"></iframe>3.内联框架属性height:规定高度width:规定宽度frameborder:属性规定是否显示ifra......
  • 前端笔记-HTML id-20221021
    HTMLid属性1.id属性定义:HTML id 属性用于为HTML元素指定唯一的id。一个HTML文档中不能存在多个有相同id的元素。作用:用于指向样式表中的特定样式声明注意:i......
  • 前端笔记-HTML 块-20221021
    HTML块元素1.HTML块元素大多数HTML元素被定义为块级元素或内联元素。“块级元素”译为blocklevelelement,“内联元素”译为inlineelement。块级元素特点:块级元......
  • Windows驱动开发环境搭建测试HelloWorld
    主要参考官方链接:https://learn.microsoft.com/zh-cn/windows-hardware/drivers/gettingstarted/writing-a-very-small-kmdf--driver其中注意修改点:双虚拟机安装好win......
  • 前端笔记-HTML 列表-20221021
    HTML列表1.定义列表自定义列表不仅仅是一列项目,而是项目及其注释的组合。自定义列表以<dl>标签开始。每个自定义列表项以<dt>开始。每个自定义列表项的定义以<dd>......
  • 2022/10/18 近期面试记录
    最近面试了好多,被问了好多,杂七杂八的东西。我只能记下一部分:1.问:c++和lua怎么交互的。c++怎么调用的lua,lua要怎么调用c++。如何实现lua热更新。 2.问:在项目中有用到哪......