zoukankan      html  css  js  c++  java
  • 牛客编程巅峰赛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,(不会)

  • 相关阅读:
    SEO--我们是不是走错了路?
    Android中的几种网络请求方式详解 .
    Android中文URL乱码问题 解决
    Oracle的Move操作
    JavaScript取DOM中下拉框的选中值
    JSP中直接用正则表达式校验
    Oracle SQL查询,日期过滤条件要注意的一点
    Oracle Decode行变列
    strcpy和memcpy的区别
    static作用(修饰函数、局部变量、全局变量)
  • 原文地址:https://www.cnblogs.com/Mangata/p/14106060.html
Copyright © 2011-2022 走看看