Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)

时间:2020-03-04 16:45:11   收藏:0   阅读:57

Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)


A.Kuroni and the Gifts


B. Kuroni and Simple Strings



C. Kuroni and Impossible Calculation



#include
using namespace std;
struct node{
        int v,next;
}edge[105000];
queue q;
int vis[105000],de[105000],head[105000],cnt,n;
void add(int u,int v){
        cnt++;
        edge[cnt].v=v;
        edge[cnt].next=head[u];
        head[u]=cnt;
}
void dec(int k){
        int i,v;
        for (i=head[k];i!=-1;i=edge[i].next) {
                v=edge[i].v;
                if (vis[v]==0){
                        de[v]--;
                        if (de[v]==1) {
                                q.push(v);
                                vis[v]=1;
                        }
                }
        }
}
void bfs(){
        int i,k,fir,sec;
        while(q.empty()==false) q.pop();
        memset(vis,0,sizeof(vis));
        for (i=1;i<=n;i++) if (de[i]==1) {q.push(i);vis[i]=1;}
        while(q.empty()==false) {
                fir=q.front();q.pop();
                if (q.empty()==true) {
                        printf("! %d\n",fir);
                        break;
                }
                sec=q.front();q.pop();
                dec(fir);
                dec(sec);
                printf("? %d %d\n",fir,sec);
                fflush(stdout);
                scanf("%d",&k);
                if (k==fir||k==sec) {
                        printf("! %d\n",k);
                        break;
                }
        }
}
int main(){
        int i,x,y;
        scanf("%d",&n);
        memset(de,0,sizeof(de));
        memset(head,-1,sizeof(head));
        cnt=0;
        for (i=1;i

原文:https://www.cnblogs.com/nowheretrix/p/12410355.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!