zoukankan      html  css  js  c++  java
  • 19-10-24-J-快乐?

    向未来的大家发送祝福(不接受的请自动忽略):

    祝大家程序员节快乐!

    好了。

    ZJ一下

    额。

    考场上差点死了。

    码1h后,T1还没过大样例。

    我×××。

    后来发现是自己××了。

    T2T3丢暴力。

    比咕的分多一点点。

    Finally:

    29
    Miemeng 100
    03:09:04
    25
    03:09:04
    25
    03:09:05
    150
    03:09:05

    Sol:

    T1

    不多说直接干即可

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #define L 1111111
    
    using namespace std;
    
    char st[L],ans[L<<4];
    int len,cnt;
    bool ndp[L<<4];
    inline void addin(const char ch){ans[cnt++]=ch;}
    int main(){
    //	freopen("expression.in" ,"r",stdin);
    	freopen("expression.out","w",stdout);
    	scanf("%s",st);
    	len=strlen(st);
    	cnt=0;
    	for(int i=0;i<len;){
    		if(st[i]=='-'){
    			addin(st[i]);
    			i++;
    			addin(st[i]);
    			i++;
    			if(i>=len||st[i]=='+'||st[i]=='-')continue;
    			addin('+');
    			while(i<len&&st[i]!='+'&&st[i]!='-'){
    				addin(st[i]);
    				i++;
    			}
    		}
    		else{
    			addin(st[i]);
    			i++;
    		}
    	}
    //	cout<<cnt<<endl;
    	for(int i=0;i<cnt;i++){
    		if(ans[i]=='-'||ans[i]=='+'){
    //			cout<<i<<">"<<endl;
    			int j=i+2;
    			if(ans[i+1]=='0'){
    				while(j<cnt&&ans[j]=='0'){//SB
    //					cout<<j<<endl;
    					ndp[j]=1;
    					j++;
    				}
    				if(ans[j]!='+'&&ans[j]!='-')ndp[j]=1;
    				i=j-1;
    			}
    		}
    	}
    //	printf("%s
    ",ans);
    	for(int i=0;i<cnt;i++)
    		if(ndp[i])
    			putchar('+');
    		else 
    			putchar(' ');
    	puts("");
    	for(int i=0;i<cnt;i++){
    		if(ndp[i]&&ans[i]!='+'&&ans[i]!='-')printf("+");
    		printf("%c",ans[i]);
    	}
    	puts("");
    //	printf("%s
    ",ans);
    }
    

    T2

    考场上啥都没想出来。

    首先如果一条边在一个偶环里就一定无法贡献答案。

    第二如果一条边在一个奇环里,可能贡献答案,但是如果在这条边被选后还有另外的奇环,那也无法贡献答案。

    于是建一棵搜索树,利用一种类似差分前缀和的思想维护$u ightarrow fa$这条边所在的奇环偶环数。

    (为什么有不快乐联通的图啊)

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #define N 111111                    
    #define M 222222
    
    using namespace std;
    
    struct SR{
    	int f,t,next;
    }rs[2*M];
    int fl[N],cnt=0;
    int pn,edn,ans,
    	dep[N],
    	odd[N],
    	even[N],
    	odcnt=0;
    bool is_v[N],
    	 is_st[N];
    
    void add(int f,int t){
    	rs[cnt].f=f;
    	rs[cnt].t=t;
    	rs[cnt].next=fl[f];
    	fl[f]=cnt++;
    }
    void dfs(int k,int pred,int dn){
    	dep[k]=dn;
    	for(int i=fl[k];i!=-1;i=rs[i].next){
    		if(i==(pred^1))continue;
    		int t=rs[i].t;
    		if(!dep[t])dfs(t,i,dn+1);
    		if(dep[k]>dep[t]){
    			int lps=dep[k]-dep[t]+1;
    			if(lps&1)odd[k]++ ,odd[t]--,odcnt++;
    			else     even[k]++,even[t]--;
    		}
    	}
    }
    void getsums(int k){
    	is_v[k]=1;
    	for(int i=fl[k];i!=-1;i=rs[i].next){
    		int t=rs[i].t;
    		if(!is_v[t]&&dep[t]==dep[k]+1){//cout<<k<<"->"<<t<<endl;
    			getsums(t);
    			odd[k] +=odd[t];
    			even[k]+=even[t];
    		}
    	}
    }
    int main(void){
    	int a,b;
    	//cin.sync_with_stdio(false);
    	scanf("%d%d",&pn,&edn);
    	memset(fl,-1,sizeof fl);
    	for(int i=1;i<=edn;i++){
    		scanf("%d%d",&a,&b);
    		add(a,b);
    		add(b,a);
    	}
    	for(int i=1;i<=pn;i++){
    		if(!dep[i]){
    			is_st[i]=1;
    			dfs(i,-1,1);
    		}
    	}
    //	for(int i=1;i<=pn;i++){
    		cout<<i<<" "<<odd[i]<<" "<<even[i]<<endl;
    	}
    	for(int i=1;i<=pn;i++)
    		if(is_st[i])
    			getsums(i);
    //	cout<<odcnt<<endl;
    	for(int i=1;i<=pn;i++){
    		if(is_st[i])continue;
    //		cout<<i<<" "<<odd[i]<<" "<<even[i]<<endl;
    		if(odd[i]==odcnt&&even[i]==0){
    			ans++;
    		}
    	}
    	if(odcnt==1)ans++;
    	printf("%d
    ",ans);
    }
    

    T3

    只gugu不说话

    (雾

  • 相关阅读:
    ◆◆0凭证(Tcode)跳转(SET PARAMETER ID)
    [问题解决]ALV新加字段不显示
    8-Noise & Error
    5-ML的可行性(2)
    4-ML的可行性(1)
    6-ML的可行性(3)
    1-ML的基本概念
    基于SmartQQ协议的QQ聊天机器人-8
    基于SmartQQ协议的QQ聊天机器人-7
    基于SmartQQ协议的QQ聊天机器人-6
  • 原文地址:https://www.cnblogs.com/kalginamiemeng/p/Exam20191024.html
Copyright © 2011-2022 走看看