Comet OJ - Contest #4 D求和 思维题】的更多相关文章

Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) #define ll long long #define maxn 100000 using namespace std; int arr[30],brr[maxn]; ll calc(ll t) { int n=0,m=0; while(t) arr[++n]=t%10,t/=10; while(n>…
题目链接: 题意:有两个操作 操作1:给出n个操作,将区间为l到r的数字改为x 操作2:给出q个操作,输出进行了操作1中的第x到x+y-1操作后的结果 解法: 把询问离线,按照r从小到大排序 每次询问的时候,用珂朵莉树推平区间 求和,这个我们用树状数组维护即可 树状数组求出>=l的和 #include <bits/stdc++.h> #define IT set<node>::iterator using namespace std; typedef long long ll…
Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) #define maxn 300000 #define ll long long using namespace std; vector<int>G[maxn]; ll sumv[maxn]; ll Sum(ll k) { return k*(k+1)/2; } ll calc(ll k) { r…
原题:Comet OJ - Contest #4-B https://www.cometoj.com/contest/39/problem/B?problem_id=1577传送门 一开始就想着暴力打表,结果.. 前缀和是个很好的工具,本题可以用相邻前缀和之差得到结果. 例如:K=4: 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 #include <cstdio> using int64 = long long; int main() { int T; scanf(&quo…
Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最小值)和原数最低位的差. 令$S$为输入数字串,则答案为 $(\min_{i=1}^{n}S_i-S_n)%10$ . 时间复杂度 $O(n)$ . B.usiness -Problem designed by Winniechen- 这是一个很显然的动态规划问题. 令$g_{i,j}$表示第$i$…
Comet OJ - Contest #13-C2 C2-佛御石之钵 -不碎的意志-」(困难版) 又是一道并查集.最近做过的并查集的题貌似蛮多的. 思路 首先考虑,每次处理矩形只考虑从0变成1的点.这样我们的复杂度就控制在了\(O(nm)\). 那么,我们考虑怎么维护每个点下一个0的位置.因为我们知道并查集是用来维护一些元素的相同关系.所以我们考虑使每个点的\(fa\)为这一行下一个0的位置.那么,当我们把一个点由0染成1时,将这个点和左边的点合并.我们就能保证当前这个点的\(fa\)就是下一个…
来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 \(\sqrt{a}^{2i}\) 然后发现原式求的就是 :\((\sqrt{a} +b)^n\) 展开后的偶数项 而这些偶数项有个性质,就是他们都不包含 \(\sqrt{a}\) ,所以我们可以把 \((\sqrt{a} +b)\) 转换到复平面上的点, \(b\) 做第一维, \(\sqrt…
来源:Comet OJ - Contest #13 一眼并查集,然后发现这题 tmd 要卡常数的说卧槽... 发现这里又要用并查集跳过访问点,又要用并查集维护联通块,于是开俩并查集分别维护就好了 一开始 XJB 搞了两个并查集建了个完全的连接方式,然后 xjb 写了堆合并,调了一会儿交上去喜见 TLE (自闭现场) 挺好的啊,然后改成动态开点并且访问点跳过的操作也优化了一下,终于爬过去了 ORZ 原 Code 代码挺好打&&极不清爽 //by Judge (zlw ak ioi) #inc…
Comet OJ - Contest #2 简要题解 cometoj A 模拟,复杂度是对数级的. code B 易知\(p\in[l,r]\),且最终的利润关于\(p\)的表达式为\(\frac{(p-l)(\frac{L+R}{2}-p)}{r-l}\),二次函数求最值即可. code C 枚举独立集点数即可.\(\sum_{i=0}^n\binom nip^{\binom i2}\). code D 树上的任意一个满足\(|S|\ge2\)的点集\(S\)均有一个唯一的中心,即直径的中点(…
Comet OJ - Contest #2简要题解 前言: 我没有小裙子,我太菜了. A 因自过去而至的残响起舞 https://www.cometoj.com/contest/37/problem/A?problem_id=1528 容易发现那玩意增长的飞快,只要模拟就可以了 //❤ ayaponzu* #include <cstdio> #include <cstring> #include <algorithm> #include <cstdlib>…
Comet OJ - Contest #8 传送门 A.杀手皇后 签到. Code #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1005; vector <string> v; int n; string s; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for(int…
Comet OJ - Contest #5 总有一天,我会拿掉给\(dyj\)的小裙子的. A 显然 \(ans = min(cnt_1/3,cnt_4/2,cnt5)\) B 我们可以感性理解一下,最大的满足条件的\(x\)不会太大 因为当\(x\)越来越大时\(f(x)\)的增长速度比\(x\)的增长速度慢得多 其实可以证明,最大的满足的\(x\)不会超过\(100\) 因为没有任何一个三位数的各位之和大于等于\(50\) 所以我们就直接预处理\(1-99\)所有的合法的 暴力枚举即可 其实…
Comet OJ Contest #13 D \(\displaystyle \sum_{i=0}^{\left\lfloor\frac{n}{2}\right\rfloor} a^{i} b^{n-2 i}\left(\begin{array}{c}{n} \\ {2 i}\end{array}\right)\) $ T \leq 10^4 , n , m , p \leq 10^{18} $ 注意,由于 $ p $ 不一定是质数,而且数据范围看起来很快速幂所有貌似只能快速幂. 这个式子可以化…
Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #define setIO(s) freopen(s".in","r",stdin) #define maxn 200004 #define mod 998244353 #define ll long long using namespace std; in…
题目链接:https://www.cometoj.com/contest/39/problem/B?problem_id=1577 题意:给你一个数列,求L 到 R 区间内 所有数列 (ƒn mod 2)的和. 思路:这题是个找规律的题目,首先数列都要对2取模运算,如果这个数是偶数 那么mod 2就是0,奇数就是1,所以这题等价于求 L 到 R 区间内奇数的个数. 1.当 k 为奇数的时候,我们发现数列的值对2取模后全为1,所以 ans = R - L + 1. 2.当 k 为偶数的时候,假设…
###题目链接### 题目大意: 给你一个 x ,让你求出最小的正整数 n 使得 n * (n + 1) / 2  % x == 0 ,即 n * (n + 1)  % 2x == 0 . 分析: 1.由于 n * (n + 1) 为 2x 的倍数,故分离出它们各自的某个因数使得 k1 * k2 == 2x . 则令 k2 * b = n + 1 ,k1 * a = n .则有: 2.显然上述 一式 为不定方程,倘若先将 符号放到 a 里面,则系数分别为 k2 与 k1 ,有解 b 与 a 当且…
点此看题面 大致题意: 给定自然数\(n\),让你求出方程\(\sqrt{x-\sqrt n}+\sqrt y-\sqrt z=0\)的自然数解\(x,y,z\)的数量以及所有解\(xyz\)之和. 推式子 这道题应该不是很难. 移项可以得到: \[\sqrt{x-\sqrt n}=\sqrt z-\sqrt y\] 两边同时平方: \[x-\sqrt n=y+z-2\sqrt {yz}\] 则我们可以得出第一个结论: 当\(n\)为完全平方数,即\(\sqrt n\)为整数时,有无数组解,直接…
题意 https://www.cometoj.com/contest/52/problem/C?problem_id=2416 思路 这里提供一种容斥的写法(?好像网上没看到这种写法) 题目要求编号为 \(i\) 的节点不能放在 \(p_i\) 位置,那我们不妨假设没有这些条件,然后再用二进制容斥的方法减去不满足条件的情况(即固定某些 \(i\) 在 \(p_i\) 上,这样会好考虑问题一点). 然后我们面临的问题就是,计算 \(A\)(二进制)这些数不能选,\(B\)(二进制)这些位置不能填的…
机器学习题 题目大意: 数据范围: 题解: 学长说是决策单调性? 直接斜率优化就好了嘛 首先发现的是,$A$和$B$的值必定是某两个$x$值. 那么我们就把,$y$的正负分成两个序列,$val1_i$表示$A$取序列中第$i$个数的值是,给的代价,$val2_i$同理. 那么最终的答案情况就是一个$i$一个$j$,分别是$val1_i + val2_j + a_i.x^2 + b_j.x^2 - 2*a_i.x\times b_j.x$. 显然可以斜率优化. 把第一个数列里的所有数抽象成点,为$…
另一道树题 题目大意: 数据范围: 题解: 这个题第一眼能发现的是,我们的答案分成两种情况. 第一种是在非根节点汇合,第二种是在根节点汇合. 尝试枚举在第几回合结束,假设在第$i$回合结束的方案数为$f_i$,那么总答案就是$\sum\limits_{i = 1} ^ {N - 1}i\times f_i$. 显然没法求这个$f_i$.... 进而,觉得这鬼东西的后缀和好像比较好求,就是$g _ i = \sum\limits_{j = i} ^ {N - 1} f _ j$. 由于我们就相当于…
求和 题目大意: 数据范围: 题解: 脑筋急转弯可还行..... 我们发现只需要最后枚举个位/xk/xk 因为前面的贡献都是确定的了. 故此我们最后暴力统计一下就好咯. 不知道为啥我组合数一直过不去,暴力求过了呜呜. 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; char *p1, *p2, buf[100000]; #define nc() (p1 == p2 && (p2 =…
一道树题 题目大意: 给定一棵树,边的编号为读入顺序.现在规定,区间$[L, R]$的贡献$S(L,R)$为把编号在该区间里的边都连上后,当前形成的森林中点数大于等于$2$的联通块个数. 求$\sum\limits_{i = 1} ^ {N - 1}\sum\limits_{j = i} ^ {N - 1}S(i,j)$. 数据范围:$2\le N\le 10^5$. 题解: 水题. 我们发现,一棵树上假设联通了$k$条边,那么联通块个数就是$N-k$个.所以我们可以求出,所有区间下的所有联通块…
题目描述 小象同学在初等教育时期遇到了一个复杂的数学题,题目是这样的: 给定自然数 nn,确定关于 x, y, zx,y,z 的不定方程 \displaystyle \sqrt{x - \sqrt{n}} + \sqrt{y} - \sqrt{z} =0x−n​​+y​−z​=0 的所有自然数解. 当时的小象同学并不会做这道题.多年后,经过高等教育的洗礼,小象同学发现这道题其实很简单.小象同学认为你一定也会做这道题,所以把这道题留给了你.为了便于输出,你不需要输出每一组解 (x, y, z)(x…
###题目链接### 题目大意:一开始手上有 0 个节点,有 n 天抉择,m 种方案,在每天中可以选择任意种方案.任意次地花费 x 个节点(手上的节点数不能为负),使得在 n 天结束后,获得 y 个节点. 其次,在每天结束后,会根据自己手上所具有的节点数来获得一些节点,设当天结束后所拥有 x 个节点,那么将获得 f(x) 个节点. 分析: 1.将全过程分为 n 天,每天开始有一定的节点数,然后 DP 求得花费后的最大价值(这个最大价值指的是,n 天结束后仅返还获得的最大节点数).故设 dp[i]…
###题目链接### 题目大意:有 n 个正整数,每个正整数代表一个成语,正整数一样则成语相同.同一个正整数最多只会出现 3 次. 求一种排列,使得这个排列中,相同成语的间隔最小值最大,输出这个最小间隔的最大值. 相同成语的间隔为这两者中间的成语个数. 特别地,当每种成语都只出现一次时,把最小间隔的最大值视为 n . 分析: 1.若成语最大出现的次数是 2 时:比如有两个不同的成语 1  2 ,他们都出现过两次,那么为了使得最小间隔要最大,最好的构造就是两个 1 的间隔等于两个 2 的间隔. 1…
目录 题目链接 思路 代码 题目链接 传送门 思路 \(kruskal\)重构树\(+\)线段树\(+\)倍增 代码 #include <set> #include <map> #include <deque> #include <queue> #include <stack> #include <cmath> #include <ctime> #include <bitset> #include <cs…
Code: #include <bits/stdc++.h> #define N 3000000 using namespace std; char str[N]; int main() { int minv=10,cur,len; scanf("%s",str+1),len=strlen(str+1); for(int i=1;i<=len;++i) { minv=min(minv, str[i]-'0'); cur=str[i]-'0'; } printf(&qu…
题目描述 Takuru 是一名能力者,他在地震时获得了念力致动的能力.所以他经常用自己的能力去干一些奇奇怪怪的事情. 有一天他获得了一张 nn 个点的无向完全图,之后他使用了能力,导致这张图的 \frac{n(n-1)}{2}2n(n−1)​ 条边中的每一条都有 \frac{x}{y}yx​ 的概率遭到破坏而消失. 现在 Takuru 想知道这张无向图点集的全部 2^n2n 个的子集中,是独立集的子集数量的期望值. 一张无向图 GG 的一个子集是独立集的定义如下:此点集 SS,满足对于任意的 x…
题目描述 小猫有一个 2\times N2×N 的棋盘,每一个格子放着一个黑棋子或白棋子. 小熊觉得小猫的棋盘不够好看,想要把棋盘上的一部分白棋子替换成黑棋子,使得所有黑棋子都能够在仅允许上下左右四个方向走,且仅经过黑棋子在的格子的情况下两两互相到达. 小熊想知道至少要将多少个白棋子替换成黑棋子. 注意:不能将黑棋子替换成白棋子.     输入描述 第一行有一个正整数 NN (1 \le N \le 10^51≤N≤105). 接下来两行,每行 NN 个整数,描述整个棋盘.若第 ii 行的第 j…
Code: #include <cstdio> #include <algorithm> #include <cstring> #define setIO(s) freopen(s".in","r",stdin) #define maxn 400005 #define inf 1000000009 #define ll long long using namespace std; int head,tail; int S[maxn…