• 牛客编程巅峰赛S2第7场


    前言

    这一场真*爆0场,被自己的理解坑了,把那个子序列以为是字串了,原地爆炸,好亏好亏,第二题是一道博弈论,然鹅我就只有一种情况没想出来,还是挂了真滴难受

    A.牛牛的独特子序列(二分)


    解题思路: 题目的意思是从主串中找到满足(a_n b_n c_n)(mathbf{子序列}) ,ps:子序列可以是不连续的,字串是必须连续的,两者都需从前往后算,知道了这一点,我们就可以直接二分满足条件的子序列的长度,子序列的长度最小是0,最大是(lfloor len/3 floor)
    Code:

    bool check(string x,int n) {//n表示的是当前期望取的子序列的长度
    	int tlen[3]={0};
    	int len = x.length();
    	for(int i = 0;i < len; ++i) {
    		if(tlen[0] < n && x[i]== 'a') {//先取a
    			tlen[0]++;
    		}
    		else if(tlen[0] == n && tlen[1] < n && x[i] == 'b') {//满足先取a,再取b
    			tlen[1]++;
    		}
    		else if(tlen[1] == n && tlen[2] < n && x[i] == 'c') {//满足先取b,再取c
    			tlen[2]++;
    		}
    	}
    	if(tlen[0] == tlen[1] && tlen[1] == tlen[2] && tlen[0] == n)//如果满足条件
    		return true;
    	return false;
    }
    
    int Maximumlength(string x) {
            // write code here
            int ans = 0;
            int len = x.length();
    		int l = -1, r = len/3;
    		while(l + 1 < r) {//二分(我的二分板子)
    			int mid =l + r >> 1;
    			if(check(x,mid)){
    				l = mid;
    			}
    			else
    				r = mid;
    		}
    		return l * 3;
    }
    

    这道题因为把子序列以为成了字串,差点让我觉得题目的数据有问题(QAQ),看来还是自己太菜了

    分贝壳游戏


    解题思路:这道题是一个博弈论,因为牛牛是先手,所以我们可以分类讨论牛牛一次能拿的贝壳和牛妹一次能拿的贝壳的大小****
    一、p == q
         
    1.n%(p+1)==0 -> 牛妹胜
         
    2.n%(p+1)!=0 -> 牛牛胜
    二、p > q
         1.n <= p -> 牛牛胜(一步取完)
         
    2.n == p+1 -> 牛牛先取一个然后无论牛妹怎么取都会输,也就是牛牛必胜
         3.n >= p+1 -> 牛牛必胜
    三、p < q
         n <= p ->牛牛胜(一步取完)
         其他情况 ->牛妹胜

    Code:

    int Gameresults(int n, int p, int q) {
            // write code here
            if(p >= n || p > q)
                return 1;
            if(p < q)
                return -1;
            if(n%(p+1)==0)
                return -1;
            else
                return 1;
    }
    

    经过直径的点

    树形DP,(不会)

  • 相关阅读:
    HDU4289 Control 最大流
    POJ3281 Dining 最大流
    HDU4738 Caocao's Bridges 无向图的桥
    HDU4865 Prince and Princess 强连通分量+二分图判定
    POJ 1904 King's Quest 强连通分量+二分图增广判定
    HDU 4635 Strongly connected 强连通分量
    HDU 4280Island Transport(Dinc非STL 模板)
    POJ 2752Seek the Name, Seek the Fame(next数组妙用 + 既是前缀也是后缀)
    Codeforces Round #346 (Div. 2)E
    POJ2318TOYS(叉积判断点与直线位置)
  • 原文地址:https://www.cnblogs.com/Mangata/p/14106060.html
Copyright © 2020-2023  润新知