zoukankan      html  css  js  c++  java
  • Codeforces Round #732 (Div. 2)

    B. AquaMoon and Stolen String
    这题就是把一个字符串拿走了,但是给了我们原来的和剩下的,所以别看中途配对又交换了,直接相减就行了。

    代码
    
    string s[N], s1[N];
    int main()
    {
    	//ios::sync_with_stdio(false); cin.tie(nullptr);
    	int t;
    	cin >> t;
    	while (t--) {
    		int n, m;
    		cin >> n >> m;
    		for (int i = 1; i <= n; i++)
    			cin >> s[i];
    		for (int i = 1; i < n; i++)
    			cin >> s1[i];
    		for (int i = 0; i < m; i++) {
    			map m;
    			for (int j = 1; j <= n; j++) {
    				m[s[j][i]]++;
    			}
    			for (int j = 1; j < n; j++) {
    				m[s1[j][i]]--;
    			}
    			for (int j = 'a'; j <= 'z'; j++)
    				if (m[j] == 1)
    					putchar(j);
    		}
    		cout << endl;
    		fflush(stdout);
    	}
    }    
      
    (官方讲得更好,注意到除了被拿走的字符串,其他的都有2个,所以字母都是偶数个,每个位置上出现奇数次的字母就是被拿走的,再利用异或2次为0的自反性质。)

    C. AquaMoon and Strange Sort
    这题比赛就不会了,还是思路重要啊。注意到每个数移动的距离都是偶数,所以原本奇数位置上的数字还会再奇数位置上,但是奇数位置之间可以随便交换。(偶数位置类似)。所以排序后检验即可。

    代码
    
    int a[N],b[N][2];
    int main()
    {
    	ios::sync_with_stdio(false); cin.tie(nullptr);
    	int t;
    	cin >> t;
    	while (t--) {
    		memset(b, 0, sizeof(b));
    		int n;
    		cin >> n;
    		for (int i = 1; i <= n; i++) {
    			cin >> a[i];
    			b[a[i]][i % 2]++;
    		}
    		sort(a + 1, a + 1 + n);
    		for (int i = 1; i <= n; i++) {
    			b[a[i]][i % 2]--;
    		}
    		bool f = true;
    		for (int i = 1; i < +n; i++) {
    			if (b[a[i]][0] != 0 || b[a[i]][1] != 0) {
    				f = false;
    				break;
    			}
    		}
    		if (f)
    			cout << "YES" << endl;
    		else
    			cout << "NO" << endl;
    	}
    }     
      
  • 相关阅读:
    hdu 4496 D-City 并查集
    hdu 4493 Tutor 水题
    codeforces 377A. Puzzles 水题
    hdu 1257 小希的迷宫 并查集
    图论500题
    cdoj 93 King's Sanctuary 傻逼几何题
    cdoj 题目简单分类
    cdoj 80 Cube 水题
    cdoj 71 I am Lord Voldemort 水题
    cdoj 65 CD Making 水题
  • 原文地址:https://www.cnblogs.com/lingshi321/p/15009113.html
Copyright © 2011-2022 走看看