Codeforcesラウンド#627(DIV。3)補充

  • CF1324Aもう一つのテトリス問題

    Nは数字のセットの配列の長さであり、値が同じですべての項目かどうかを尋ねたように、2のいずれかを引き起こすことができます。

    私はそれが箱のすべてを書くのは難しいコードにつながる排除することができないと思いますので、背景に元のタイトルのためにこのようなテトリスのように......問題を単純化するために、より能力のテストでdiv.3トピックを感じます。しかし場合は、質問の意味を簡単にするよう上記のように、方向は非常に明確である:限り、裁判官のすべての桁が偶数/奇数であるかどうかを。

    CF1324A-コード
    #include<cstdio> 
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<set>
    #include<vector>
    #include<queue>
    using namespace std;
    
    int main()
    {
    	int a[110];
    	int kase;
    	cin>>kase;
    	while(kase--){
    		int n;
    		cin>>n;
    		a[0]=a[n+1]=0;
    		int ok=1;
    		for(int i=1;i<=n;i++){
    			cin>>a[i];
    			a[i]%2==0?a[i]=-1:a[i]=-2;//偶数记为-1,奇数记为-2 
    			if(i==1) continue;
    			if(a[i]!=a[1]) ok=0;
    		}
    		if(ok) cout<<"YES"<<endl;
    		else cout<<"NO"<<endl;
    	}
    	return 0;
    }
    
    

  • CF1324Bもう一つの回文問題

    3とは、よりパリンドロームサブストリングの長さよりも存在するか否かを判断する
    単純化:サブ回文文字列長3かどうかを
    さらに簡素化:2つの隣接していない要素がある場合に等しいです

    これは、コードを記述する必要が直接どのようにショーのコアに短縮されました......が、詳細はまだそれを展開する必要があります。

    文字列のトラバーサルの間に、遭遇したVISデジタルタグ・アレイを使用して、その時間スケール番号が最初に現れるを記録。数は、第二の遭遇にトラバースされる場合(\(VIS [A [I]]!= 0 \) )、次いで限り距離計算のためのデジタル位置の最初の遭遇1、\(> 1 \ )パリンドロームストリングを構成するように端部に隣接していない、端部を記述することができます。

    CF1324B-コード

    #include<cstdio> 
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<set>
    #include<vector>
    #include<queue>
    using namespace std;
    
    int a[5010];
    int vis[5010]; 
    int main()
    {
    	int t;
    	cin>>t;
    	while(t--){
    		memset(a,0,sizeof(a));
    		memset(vis,0,sizeof(vis));
    		int n;
    		cin>>n;
    		int ok=0;
    		for(int i=1;i<=n;i++) {
    			cin>>a[i];
    			if(!vis[a[i]]) vis[a[i]]=i;
    			else if(i-vis[a[i]]>1) ok=1;
    		}
    		if(ok) cout<<"YES"<<endl;
    		else cout<<"NO"<<endl;
    	}
    	return 0;
    }
    
    

  • CF1324Cカエルジャンプ

    カエルジャンプボックス、唯一の右から左にジャンプします。開始点は右にジャンプすることができます。他の書かれた格子L、R、このボックス後のカエルのジャンプの方向を表します。カエルは、距離を選択することができる\(D \) 各ジャンプからジャンプすることができ(<= D \)\、終点Qが最小ジャンプできるグリッド上\(Dを\)

    逆思考の波。明らかに終わりであなただけの過去に最も近いグリッドRをジャンプすることができますが、私はそれがここにあった、その後、立ち往生だと思う......

    質問の意味を組み合わせ、2のための間接的な隣接(彼らはLの間で連続していなければならないので)R-グリッド、あなたは常に右側に格子RのRグリッドから左にジャンプすることができ、逆の発想であれば、我々は唯一のジャンプすることができますので、まで最大値をとり、直接または間接的に隣接するR格子は、確実に選択することができるすべての方法との間の距離として、ある-出発点に戻って\(D \)は端から戻って開始点にジャンプすることができます。

    CF1324C-コード

    #include<cstdio> 
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<set>
    #include<vector>
    #include<queue>
    using namespace std;
    
    int main()
    {
    	int t;
    	cin>>t; 
    	while(t--){
    		string a="R";
    		string x;
    		cin>>x;
    		a+=x;
    		int last=0;
    		int m=0;
    		for(int i=0;i<a.length();i++){
    			if(a[i]=='R'){
    				m=max(m,i-last);
    				last=i;
    			}
    		}
    		int ans;
    		int k=a.length()-last;
    		ans=max(m,k);
    		cout<<ans<<endl;
    	}
    	return 0;
    }
    
    

おすすめ

転載: www.cnblogs.com/streamazure/p/12590358.html