1 条题解

  • 1
    @ 2026-8-5 11:42:01

    其实按最笨的方法做就行

    #include <iostream>
    using namespace std;
    
    int main(){
    	int n;
    	cin >> n;
    	char colour;
    	int a[n];
    	for(int i=0;i < n;i++){
    		cin >> colour;
    		if(colour == 'R') a[i] = 0;
    		else if(colour == 'B') a[i] = 1;
    		else a[i] = 2;
    	}
    	
    	bool p[3] = {true,true,true};
    	int t=0;
    	for(int i=0;i < n;i++){
    		if(a[i] == 0){
    			if(!p[0]){
    				p[0] = true;
    				t++;
    			}
    			if(p[1]){
    				p[1] = false;
    				t++;
    			}
    			if(p[2]){
    				p[2] = false;
    				t++;
    			}
    		}
    		else if(a[i] == 1){
    			if(!p[1]){
    				p[1] = true;
    				t++;
    			}
    			if(p[2]){
    				p[2] = false;
    				t++;
    			}
    		}
    		else{
    			if(!p[a[i]]){
    				p[a[i]] = true;
    				t++;
    			}
    		}
    	}
    	
    	cout << t;
    
    	return 0;
    }
    
    • 1

    『MGOI』Simple Round I | B. 魔法照相馆

    信息

    ID
    13887
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    96
    已通过
    14
    上传者