ACM交互题

Posted KaaaterinaX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM交互题相关的知识,希望对你有一定的参考价值。

A - Bear and Prime 100

神奇交互题。

交互题的意思大概就是你向系统提出询问,然后系统会给出答案,在有限的询问次数中得到题目要求的答案。

题目解析:
因为隐藏的数字在[2,100]之间,所以这些数的非1或本身的因子只会出现在[2,50]中。
所以解法就是打表[2,50]的素数,依次输出询问,如果得到“yes”的次数多于两次,那么这个数不是素数。
但是要注意特殊判断几个素数的平方(4,9,25,49)。

ac代码:

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <queue>
#include <stack>
#include <set>
//#include <unordered_set>
#include <string.h>
#include <map>
//#include <unordered_map>
#include <stdlib.h>
#include <time.h>
#include <vector>
#include <deque>
#define YES "YES"
#define NO "NO"
#define INF 0x3f3f3f3f
#define FAST ios::sync_with_stdio(false)
#define ll long long
#define pb push_back
#define endl '\\n'
#define eps const double eps=1e-6
using namespace std;
//---------------------------------------------------//
template<typename T>inline void read(T &x){
    x=0;
    char c=getchar();
    ll f=1;
    if(c>'9'||c<'0'){
        if(c=='-'){
            f=-1;
        }
        c=getchar();
    }
    while(c<='9'&&c>='0'){
        x=(x<<1)+(x<<3)+c-'0';
        c=getchar();
    }
    x*=f;
}
template<typename T> inline void write(T x){

    if(x<0){
        putchar('-');
        x=-x;
    }
    if(x>9){
        write(x/10);
    }
    putchar(x%10+'0');
}
//_____________________________________________________//
int prim[30];
int cnt=0;
int main(){
    for(int i=2;i<=50;i++){
        int flag=0;
        for(int j=2;j<i;j++){
            if(i%j==0){
                flag=1;
                break;
            }
        }
        if(flag==0){
            prim[++cnt]=i;
        }
    }
    prim[++cnt]=4;
    prim[++cnt]=9;
    prim[++cnt]=25;
    prim[++cnt]=49;
    //相当于在评测机里找答案
    string s;
    int cc=0;
    for(int i=1;i<=cnt;i++){
        cout<<prim[i]<<endl;
        cin>>s;
        if(s=="yes"){
            cc++;
        }
    }
    if(cc>=2){
        cout<<"composite";
    }
    else{
        cout<<"prime";
    }
}

以上是关于ACM交互题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xcode 将快照划分为多个片段,以便让用户与每个片段进行交互?

acm刷题序列

BUCTOJ - 2023上半年ACM&蓝桥杯每周训练题-1-A~K题C++Python双语版

BUCTOJ - 2023上半年ACM&蓝桥杯每周训练题-1-A~K题C++Python双语版

如何在不与 MainActivity 交互的情况下从通知中打开片段页面?

前端防扒代码片段