zoukankan      html  css  js  c++  java
  • Codeforces Round #190 (Div. 2) B. Ciel and Flowers

    重点还是推一下式子。

    设mixing bouquet个数为x,F(x,y) = [(y-x)/3],则答案为f(x) = F(x,r)+F(x,g)+F(x,b),这里的[]代表向下取整,猜测一下f(x)的单调性。

    推这个式子f(x+1) - f(x) = 1+F(x+1,r)-F(x,r)+F(x+1,g)-F(x,g)+F(x+1,b)-F(x,b)。

    对F(x+1,r)-F(x,r)分析:令S=[(y-x-1)/3]-[(y-x)/3],显然麻烦的是取整函数,分类讨论下:

    I.(y-x)%3 = 0,则S = -1,II.否则S = 0。可见对于集合T = {r,g,b},若对所有的t属于T,且(t-x) % 3 != 0,则f(x+1)-f(x) = 1,否则f(x+1)-f(x)<=0。

    此时仍无法说明f(x)是否单调。我们将T中元素%3,得到新的所谓取模集合T‘={r',g',b'},T’中所有元素取值在区间[0,2]中。

    由I情况可知,当f(x+1)-f(x) = 1时,令x' = x % 3,我们对所有t'属于T’,必有x' != t‘,若f(x)非单调减,则对所有的x,我们有f(x+1)-f(x)>=0,

    但这是不可能的,因为T’是不变的,而x' = x % 3,始终在[0,2]区间内,如若有f(x+1) - f(x) = 1,则|T’-x'|(这里||指集合的大小) 必定等于2,我们把

    r',g',b'映射到T'-x'这个集合中即可发现至少有2个落在了同一个元素上,于是在取值为x+1或者x+2时必定存在f(x+2) - f(x+1) >= -1,或者f(x+3) - f(x+2) >= -1,

    当同一个元素上有2个映射点,则f(x)这个函数实际上在[y,y+1]区间内徘徊,若有3个映射点,则则f(x)这个函数实际上在[y,y+2]区间内徘徊,因此,

    我们只需要对于x取连续的三个数即可,注意x<=min(r,g,b)。

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <cstring>
    #include <string>
    #include <bitset>
    #include <stack>
    #include <set>
    #include <map>
    #include <list>
    #include <assert.h>
    using namespace std;
    #define e exp(1.0)
    typedef long long ll;
    #define MAXN 100005
    #define mod 998244353
    #define INF 0x3f3f3f3f3f3f3f
    #define fe(i,st,en) for(i = (st);i <= (en);++i)
    #define fne(i,st,en) for(i = (st);i < (en);++i)
    #define ri register int
    #define db double
    int main() {
        int r, g, b;
        cin >> r >> g >> b;
        int li = min(r, min(g, b)), ans = 0;
        for (int i = 0; i <= min(2, li); ++i) ans = max(ans, (r - i) / 3 + (g - i) / 3 + (b - i) / 3 + i);
        cout << ans << endl;
        return 0;
    }
  • 相关阅读:
    禁止页面被复制和禁止右键,一段样式一段JS就行了,无需复杂设定!
    你不知道的DIV+CSS的命名规则
    帝国cms提高网站网页打开速度的手段
    帝国cms网站管理系统之安全设置最优化分享
    渗透测试===使用BURPSUIT暴力破解某网站的手机验证码
    并发、并行、同步、异步、多线程的区别?
    python基础===一行 Python 代码实现并行(转)
    python目前安装的包备份
    jmeter,测登录,要不要过滤掉JS,CSS等请求?感觉过滤掉了压出来的数据就不真实?
    几个网站
  • 原文地址:https://www.cnblogs.com/zhuiyicc/p/10926695.html
Copyright © 2011-2022 走看看