码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 交互题入门


    2022CCPC预选赛K

    题面

    题解

    • 5000次都输的概率小,至少一场能赢
    • 而本金很多,只需要每次都投入上一次投入金钱的两倍即可

    代码

    //没写高精度
    #include 
    #include 
    
    using namespace std;
    
    int main() {
        long long y,q,seed,cnt=1,x;
        cin>>y>>q>>seed;
        
        do {
            cout<<cnt*y<<'\n';
            fflush(stdout);
            cnt*=2;
            cin>>x;
        }while(x!=2);
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    B. Lost Numbers

    题意

    • 有一个[4,8,15,16,23,42]的排列,通过最多4次询问得出其排列
    • 每次询问:可以询问两个位置i,j,返回ai*aj

    题解

    • 由于这些数两两乘积不同,所以只需按照(1,2),(2,3),(3,4),(4,5)去询问必然可以得到这6个数的排列
    • 代码写法上,可以枚举所有排列,然后根据交互出来的回答验证某个排列的正确性

    代码

    #include 
    #include 
    
    using namespace std;
    int a[6]={4,8,15,16,23,42};
    int b[6];
    
    bool check() {
        for(int i=0;i<4;i++) 
            if(a[i]*a[i+1]!=b[i])
                return false;
        return true;
    }
    
    int main() {
        for(int i=0;i<4;i++) {//询问
            cout<<"? "<<i+1<<' '<<i+2<<'\n';
            fflush(stdout);
            cin>>b[i];
        }
        do {//马驹排列验证
            if(check()) {
                cout<<"! ";
                for(int i=0;i<6;i++)
                    cout<<a[i]<<' ';
                puts("");
            }
        }while(next_permutation(a,a+6));
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    C. Chocolate Bunny

    题意

    • 有一个n的排列,能否通过最多2n次询问得到这个排列
    • 每次询问:询问i,j,得到ai mod aj的值

    题解

    • 简化,n=2时,a=ask(1,2); b=ask(2,1);如果a>b说明a[1]
    • 推广,用双指针一次确定两个指针中的一个数,直到最后没有确定位置的指针就是数值n所在的位置

    代码

    #include 
    
    using namespace std;
    const int N=1e4+10;
    int ans[N];
    
    int ask(int x,int y) {
        cout<<"? "<<x+1<<' '<<y+1<<'\n';
        fflush(stdout);
        int k;
        cin>>k;
        return k;
    }
    
    int main() {
        int n;
        cin>>n;
        
        int p=0;//左指针
        for(int i=1;i<n;i++) {//右指针
            int a=ask(p,i);
            int b=ask(i,p);
            if(a>b) {
                ans[p]=a;//左指针位置确定
                p=i;//移动左指针到未确定的位置
            }
            else ans[i]=b;//右指针位置确定,for循环中自行移动
        }
        ans[p]=n;
        
        cout<<"! ";
        for(int i=0;i<n;i++) cout<<ans[i]<<' ';
        puts("");
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
  • 相关阅读:
    Scratch软件编程等级考试一级——20200913
    web请求cookie中expires总结
    如何在自动化测试中使用MitmProxy获取数据返回?
    阿里云、腾讯云、华为云:从内卷到外卷
    Linux配置java,maven,marshalsec环境
    Vue前端框架12 组件生命周期、生命周期的应用、动态组件、组件保持存活、异步组件、依赖注入、Vue应用原理
    从这几个关键功能,带您认真了解低代码的世界~
    判断一个数是否是质数
    究极异常处理逻辑——多层次异常的处理顺序
    14_Nginx正则表达式_动静分离配置
  • 原文地址:https://blog.csdn.net/m0_49843646/article/details/126819621
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号