首页 > TAG信息列表 > codechef

[codechef]BSG

题面 给一个长度为 \(n\) 的括号串 \(S\),A 和 B 要在上面玩游戏。 每轮 A 先在 \(S\) 中选一个 () 的子序列 删掉,然后 \(B\) 也选一个删掉,如果 A 或 B 无法选择,那么就结束,并且该轮不计入总轮数。 A 希望总轮数最多,B 希望总轮数最少,求最终会进行多少轮。 数据范围:\(n\le 2\times 10

Codechef BAKERY

这道题目巧妙的点在于按照服务员分组,考虑用 \(f[i][j][k]\) 表示在时刻 \(i\) ,当前服务员距离自己的下一个客人还有 \(j\) 个,同时此时来人时的等待时间为 \(k\) 时,该服务员已经分配到的顾客的期望等待时间。 我们如果考虑这个方法暴力做复杂度是 \(O(n^2d)\) 的,必然不能通过,需要考

CodeChef Weird Product

CodeChef Weird Product ​ 设 \(p_k=\sum\limits_{i=1}^kA_iX^i\),且 \(p_0=0\)。则 \(\forall 1\le i\le j\le N,\,W(i,j)=\dfrac{p_j-p_{i-1}}{X^i}\)。于是有 \[\begin{align*}P&=\prod_{i=1}^N\prod_{j=i}^NW(i,j)^2\\&=\left(\prod_{i=0}^N\prod

codechef TREECNT2

设\(\gcd(l...r)\)表示\(l...r\)路径上的\(\gcd\) \(ans=[\gcd(l...r)]=\sum_{d|\gcd(l...r)}vu(d)\) \(=\sum_{i=1}^{1000000}vu(d)\sum_{d|\gcd(l...r)}1\) 一个显然的想法:注意到只有\(vu(d)\neq 0\)且被一个\(\gcd(l...r)\)整除的\(d\)才有用。 所以可以把所有\(\gcd(l...r)\)

Codechef MSTONES Milestones

Link 任选两个点确定一条直线,有\(\frac1{49}\)的概率正确。 多随机几次就很靠谱了。 #include<cstdio> #include<cstdlib> #include<algorithm> const int N=10007; int x[N],y[N]; int read(){int x;scanf("%d",&x);return x;} int main() { srand(4396); for

codechef Scoring Pairs

难度 \(medium-hard\) 题意 官方中文题意 做法 很显然是可以通过计算常数个\(sum(A,B)=\sum\limits_{i=0}^A \sum\limits_{j=0}^B score(i,j)\) 结论1:\(score(i,j)\)为\(i,j\)数位拆分后排序的状态 暴力分类讨论或打表可得,不详述 设\(E\)为两数分数期望 则\(sum(A,B)=(A+1)(B+1)

codechef Future of draughts

难度 super-hard 题意 官方中文题意 做法 定义1:\(G\)为邻接矩阵,\(I\)为单位矩阵 定义2:\(H\)为转移矩阵,可以不动,即\(H=G+I\) 定义3:\(e_i(x_1,...,x_n)\)为\((x_1,...,x_n)\)的所有\(i\)子集乘积和 \(i\)到\(j\)走\(K\)步的方案数即\(G^K_{ij}\),可以通过\(O(Tn^3K)\)算出来 但这样显

[题解] [Codechef] CNTL

题面 题解 第一问很简单, 如果 \(n - k\) 是偶数那么答案就是 \(2 ^ k - 1\) , 如果 \(n - k\) 是奇数答案就是 \(2^k - 2\) 第二问怎么办, 我们对于 \(n - k\) 是偶数讨论 我们要做的是, 对于每一个数, 我们要让他选奇数次最后的答案可能性才会最大 并且所有的数选的次数加起来是

Codechef Palindromeness 和 SHOI2011 双倍回文

Palindromeness Let us define the palindromeness of a string in the following way: If the string is not a palindrome, its' palindromeness is zero. The palindromeness of an one-letter string is 1. The palindromness of a string S of the length greater

[Codechef - ADITREE] Adi and the Tree - 树链剖分,线段树

[Codechef - ADITREE] Adi and the Tree Description 树上每个节点有一个灯泡,开始所有灯泡都是熄灭的。每次操作给定两个数 \(a,b\) ,将 \(a,b\) 这两个节点的灯的状态改变。定义某个状态的权值为,将树上所有亮点两两配对,每个对的权值的总和最小值。其中一个配对的权值定义为这两个

bzoj 4260: Codechef REBXOR 01trie

       类似单调栈维护一个左边的最大值和一个右边的最大值即可 #include<bits/stdc++.h>using namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);i++)#define repp(i,a,b) for(int i=(a);i>=(b);--i)#define ll long long#define see(x) (cerr<<(#x)<<'='&l

【CodeChef PALPROB】Palindromeness(回文自动机)

传送门 题解: 建立回文自动机,维护每个点right集合大小。 然后维护halfhalfhalf指针,表示failfailfail树上第一个长度小于等于自己的一半的回文后缀。 在建立的时候暴力跳祖先的half更新答案,复杂度还是由均摊分析O(∣S∣)O(|S|)O(∣S∣) 代码: #include<bits/stdc++.h> #defin

CodeChef Ada Pawns

最小割   留下最多的点 形如左上或者右上没有点的点一定会留下 对于斜着的关系的两个点不能共存 黑白行染色! 白行的点称为 白点,黑点类似 反着连关系 对于一定会留下的,S到白点,黑点到T,都连inf 不能共存的之间连inf S到白点,黑点到T,都连1 最小割之后,和S相连的白点和和T相连的黑点是被

Codechef PALPROB Palindromeness 回文树

传送门——Vjudge 构建出回文树,那么我们需要对于回文树的每一个节点求出它在原串中的出现次数和前\(\frac{len}{2}\)个字符构成的串 前者可以直接在fail树上传递endpos标记,后者可以倍增。但是后者还有一种复杂度\(O(?)\)的做法跑得非常快: 对于每一个点维护\(half_x\)表示点\(x\)对

codechef Far Graphs

codechef Far Graphs https://www.codechef.com/problems/TBGRAPH 题意 : 给一个简单无向图,要求构造一个序列\(a\),长度为\(n\),极差小于等于\(L\)(任意),使得原图中\(x,y\)相连, 当且仅当\(|a_x-a_y|\ge L/2\)。 要求\(L\le 2e9,ai\)互不相等。 分析: 显然\(L\)越大越好 如果有奇环

codechef Graph on a Table

codechef Graph on a Table https://www.codechef.com/problems/TBGRAPH 题意 : 一个\(n\times m\)的网格图。\(q\) 个矩形,格子\((r1,c1)\)可以到达\((r2,c2)\)的条件是\(r2>r1,c2>c1\)且存在一个矩形同时包含这两个点。 初始点任意,求最多走几步以及方案数。 \(T\le 100000,S=\sum

CodeChef题目选讲

https://wenku.baidu.com/view/2445a0322f60ddccda38a023.html 关键点:不超过7条 根据咕咕原理,所以答案最少是N/7;(N小于49就暴力) 随机化找两个点判断直线上的点个数,随机500次,概率就很高了   法二: 点数大于50,答案至少是8 答案一定是7条路之一 随机找7个点,按照级角序排序,点数大于7的

codechef QCHEF(不删除莫队)

题意 题目链接 给出长度为\(n\)的序列,每次询问区间\([l, r]\),要求最大化 \(max |x − y| : L_i ≤ x, y ≤ R_i and A_x = A_y\) Sol 标算神仙的一批看不懂。 维护好每个数出现的左右位置之后直接上不删除莫队就行了 #include<bits/stdc++.h> const int MAXN = 1e5 + 10, INF = 1e