首页 > 其他分享 >[Codeforces] CF1774B Coloring

[Codeforces] CF1774B Coloring

时间:2023-12-16 19:23:20浏览次数:27  
标签:lfloor Coloring frac Codeforces rfloor CF1774B num maxn 颜色

CF1774B Coloring

题意

Cirno_9baka 的纸条上有 \(n\) 个格子,他觉得空白的纸条看着有点无趣,于是想在纸条的格子上涂上 \(m\) 种颜色。同时,他认为第 \(i\) 种颜色必须要用 \(a_i\) 次,且每连续 \(k\) 个格子里涂的颜色必须互不相同。

Cirno_9baka 想知道有没有这样的一种涂色方案能符合他的要求。

思路

我们可以将其看作是将长度为\(n\)的纸条每\(k\)个为一个周期,那很明显,一种颜色最多出现的次数就是\(\lfloor \frac{n}{k} \rfloor\)

而,有一部分多出来的,也就是说有一些颜色会出现的比\(\lfloor \frac{n}{k} \rfloor\)多\(1\),这些颜色共有\(n-n\times \lfloor \frac{n}{k} \rfloor\)种。

那么,过程中就只用判断是否有颜色多于\(\lfloor \frac{n}{k} \rfloor\),以及出现\(\lfloor \frac{n}{k} \rfloor +1\)次的颜色数量是否满足要求即可

代码

又是分支语句切1500的一天

#include<bits/stdc++.h>
using namespace std;
int n,m,k,t,maxn,num,ans;
void run()
{
    cin>>n>>m>>k;maxn=n/k;num=n-maxn*k;ans=1;
    for(int i=1;i<=m;i++)
    {
        cin>>t;
        if(t==maxn+1) num--;
        if(t>maxn+1 || num<0) ans=0;
    }
    cout<<(ans?"Yes":"No")<<endl;
    return;
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int t;
    cin>>t;
    while(t--) run();
    system("echo. & pause");
    return 0;
}

但是有个很奇妙的一点,如果在6,7行中间插入这个:

if(m<k)
{
    cout<<"No"<<endl;
    return;
}

我的代码就能从\(63\)ms直线上升到TLE

就为了这个我交了将近10次(悲

标签:lfloor,Coloring,frac,Codeforces,rfloor,CF1774B,num,maxn,颜色
From: https://www.cnblogs.com/lyk2010/p/17905202.html

相关文章

  • [Codeforces] CF1760F Quests
    CF1760FQuests题意有\(n\)个任务,你每一天都可以选择其中的一个任务完成或不选。当你完成了第\(i\)个任务,你将获得\(a_i\)元。但是如果你今天完成了一个任务,那么你之后\(k\)天内都不能再完成这个任务。给出两个数\(c\),\(d\),要求求出满足在\(d\)天内可以收集至少\(c......
  • [Codeforces] CF1744E1 Divisible Numbers (easy version)
    CF1744E1DivisibleNumbers(easyversion)题意给你四个数\(a,b,c,d\),你需要找出一组\(x,y\)使得\(a<x\leqc,b<y\leqd\)并且\(x\cdoty\)能被\(a\cdotb\)整除,如果没有输出-1-1。思路最暴力的思路肯定是枚举,更肯定的一点是会TLE但是注意到,如果\(x\)一定,那么他......
  • 题解 CF1887E【Good Colorings】
    萌萌交互题。对网格图进行二分图建模,左部\(n\)个点表示每一行,右部\(n\)个点表示每一列。若格子\((i,j)\)被染成\(c\)色,就连接\((L_i,R_j,c)\)的边。由抽屉原理易证,在初始局面中至少有一个各边颜色均不同的偶环。获胜条件相当于存在一个各边颜色均不同的四元环。讨论......
  • [Codeforces] CF1740D Knowledge Cards
    CF1740DKnowledgeCards题意有一个\(n\timesm\)的棋盘。现在\((1,1)\)中有一个栈,你可以按照一定的顺序进行出栈操作,每次都可以移动一个卡片到一个相邻的空白位置,但是卡片不能重合。问,能否通过若干次操作,将\((1,1)\)中全部的卡片移动到\((n,m)\)的栈中并使得这个栈按照从栈......
  • [Codeforces] CF1722G Even-Odd XOR
    CF1722GEven-OddXOR题意给定一个正整数\(n\),请你找出一个长度为\(n\)数组\(a\),满足数组是由互不相同的非负且小于\(2^{31}\)的整数组成,并且该数组中奇数项上元素的异或值与偶数项上元素的异或值要相等。思路根据异或的交换律,可以发现:奇偶位异或值相等,那么全局异或值位......
  • CodeForces 838D Airplane Arrangements
    洛谷传送门CF传送门考虑加入第\(n+1\)个位置,这样座位构成了一个环。每个位置被覆盖的概率相等,为\(\frac{m}{n+1}\),然后算出概率再乘方案数就行了。code//Problem:D.AirplaneArrangements//Contest:Codeforces-IndiaHacks2ndElimination2017(unofficial,......
  • Codeforces Round 787 (Div. 3)D. Vertical Paths
    题目链接题意:给定一棵树,将这棵树划分成几天互不相交的链,要求最小化链的数量思路:每个叶子节点一定在一条链中,所以链的数量就是叶子节点的数量,从叶子节点往上跳直到根节点,边跳边标记,路径上所有点都属于这条链。坑:数据大时,不要轻易使用memset不然会t到起飞vector不要开太多就比......
  • Codeforces Round 814 (Div. 2)
    基本情况又是过了ABC。A、B思路更多的是从数据上分析出来的,过的很顺。C经典拿评测机来调试,甚至还RE了一次,最后终于过了。C.FightingTournamentProblem-C-Codeforces第一次改错这题我的思路是找到规律后,优先队列加二分查找。但是一直WA第二个点,这是我一开始的代码:......
  • CF1592F2 Alice and Recoloring 2
    题意给定一个矩阵,有两种颜色\(W\)和\(B\)。你可以花\(1\)的代价反转一个包含\((1,1)\)的矩阵。你可以花\(3\)的代价反转一个包含\((n,1)\)的矩阵。你可以花\(4\)的代价反转一个包含\((1,m)\)的矩阵。你可以花\(2\)的代价反转一个包含\((n,m)\)的矩阵......
  • Codeforces Round 812 (Div. 2)
    基本情况第一次赛时做出div2的ABC。然而B题是秒的最快的?A题卡了一段时间经典+4,C题代码实现卡了一段时间。A.TravelingSalesmanProblemProblem-A-Codeforces卡题分析主要原因在少了特判,没有自己多构造几个特殊情况数据。这是一开始的代码voidsolve(){ intn,......