- 博客(56)
- 收藏
- 关注
原创 Codeforces Round #748 (Div. 3)
Codeforces Round #748 (Div. 3)快ICPC了,每天整一场Codeforces/Atcoder玩玩。A、Elections每个值都要成为序列中的最大值。暴力跑一下即可。#include <bits/stdc++.h>typedef long long ll;int main(){ int t; scanf("%d", &t); while (t--) { int a[3]; for (int
2021-10-14 20:00:27
301
原创 2021牛客暑期多校训练营9
2021牛客暑期多校训练营9C、CellsLGV引理代进去算算,会发现是个范德蒙德行列式。于是问题转化为快速求出一个集合中任意两个元素差的乘积。然后赛场上卡了。考虑到元素范围在10610^6106,发现元素差的取值范围不大,于是可以计算每个差对答案的贡献,即每个差会被乘几次。于是可以用生成函数的考虑方法,把元素放在指数上,前面的系数表示个数。那么两个生成函数一乘就能算出来取αi+αj\alpha_i+\alpha_jαi+αj的取法种数。而这题要求差,所以把αj\alpha_jαj换成−α
2021-08-15 16:41:25
276
原创 2021牛客暑期多校训练营8
2021牛客暑期多校训练营8A、Ares, Toilet Ares按题意模拟,注意x=0x=0x=0情况特判。哇了好几发。#include <bits/stdc++.h>typedef long long ll;const int MOD = 4933;ll qpow(ll a, ll b){ ll res = 1; a %= MOD; while (b) { if (b & 1) res = res * a % MOD;
2021-08-15 15:36:14
170
原创 2021牛客暑期多校训练营7
2021牛客暑期多校训练营7H、xay loves count记一下每个数出现了多少次,乘一下即可。#include <bits/stdc++.h>typedef long long ll;const int MAXN = 1e6 + 10;int a[MAXN];int main(){ int n, maxi = 0; scanf("%d", &n); for (int i = 1; i <= n; ++i) { int t
2021-08-15 14:38:51
143
原创 2021牛客暑期多校训练营6
2021牛客暑期多校训练营6F、Hamburger Steak贪心,队友出的。最短总时间T=max{max{ti},⌈Σtim⌉}T=max\left\{max\left\{t_i\right\}, \lceil \frac{\Sigma t_i}{m}\rceil\right\}T=max{max{ti},⌈mΣti⌉}。然后一个一个放就可以了。为什么是对的其实还不是很懂。#include <bits/stdc++.h>typedef long long ll;const
2021-08-10 10:55:29
214
原创 2021牛客暑期多校训练营5
2021牛客暑期多校训练营5B、Boxes果然赛场上碰到概率就裂了。第一种情况就是不问,即Σw[i]\Sigma w[i]Σw[i]。第二种情况需要询问,先加上CCC。之后枚举需要问几个才能确定,答案为C+Σpre[i]∗(12)n−iC+\Sigma pre[i]*(\frac{1}{2})^{n-i}C+Σpre[i]∗(21)n−i。取最小值输出即可。#include <bits/stdc++.h>typedef long long ll;const int MAXN
2021-08-03 23:21:16
382
3
原创 2021牛客暑期多校训练营4
2021牛客暑期多校训练营4B、Sample Game看完题解发现是一道相当普通的概率dp。每次做到概率和贪心题就搞不出来,麻了。普通dp做多了,概率dp实在是弄不来。f[i]f[i]f[i]表示选择iii以后还能选择的数字长度期望,g[i]g[i]g[i]表示选择iii以后还能选择的数字长度平方的期望。f[i]=Σj<iw[j]+Σj≥i(1+f[j])w[j]f[i]=\Sigma_{j<i}w[j]+\Sigma_{j\ge i}(1+f[j])w[j]f[i]=Σj<i
2021-08-03 22:25:07
146
原创 2021牛客暑期多校训练营3
2021牛客暑期多校训练营3B、Black and White居然是最小生成树。nnn行抽象成nnn个点,mmm列抽象成mmm个点,分别放在两个集合中。一个点(i,j)(i,j)(i,j)被染黑对应到两个集合<i,j><i,j><i,j>之间连一条边。若一条边加入后如果不改变连通性,说明<i,j><i,j><i,j>间已经连通,即至少有<i,k>,<p,k>,<p,j><i,k>,
2021-08-03 19:22:19
115
原创 每日杂题(1)
每日杂题(1)2020.10.19 Omkar and Landslide(CF Global Round 10 F)tags:思维,构造,数学这题的关键在于一个非常神奇的结论:{hi}\{h_i\}{hi}中最多只会存在一组hk−1=hkh_{k-1}=h_khk−1=hk的值,除该数对外均严格递增。我一打开这道题就是毫无头绪。之后就算窃听到了李老板说的这个结论也不会证明。膜题解之。首先如果从hjh_jhj开始有若干块土能滑到hj−1h_{j-1}hj−1,并且滑到hj−1h_{j-1
2020-10-19 22:24:24
166
原创 ZJUT12 Day5
ZJUT12 Day51、CF 1426C Increase and Copytags:数学、贪心首先要认识到这样一个事实:先加再添加该数永远比先添加该数再加划算。举个例子。比如我们现在从数列里取出某元素xxx,那么第一种操作对应的增量为2(x+1)−x=x+22(x+1)-x=x+22(x+1)−x=x+2,第二种操作对应的增量为2x+1−x=x+12x+1-x=x+12x+1−x=x+1。所以一定是把最开始的111先添加到某个量以后再在数列末尾不断添加该数。假设我们执行了xxx次+1+1+1
2020-10-05 20:15:58
168
原创 ZJUT12 Day4
ZJUT12 Day41、CF 1389E Calendar Ambiguitytags:数学这题要掌握同余一个非常关键的性质:ac≡bc(mod p)ac\equiv bc(mod\ p)ac≡bc(mod p)可以转化为a≡b(mod pgcd(p,c))a\equiv b(mod\ {p\over gcd(p, c)})a≡b(mod gcd(p,c)p)。那么分析题目,容易得到如下同余式:(y−1)d+x≡(x−1)d+y(mod w),
2020-10-04 15:38:53
157
原创 ZJUT12 Day3
ZJUT12 Day31、CF 1342C Yet Another Counting Problemtags:数学关键点要找到周期性。x%a%b=x%b%ax\%a\%b=x\%b\%ax%a%b=x%b%a,然后把xxx变为x+lcm(a,b)x+lcm(a,b)x+lcm(a,b)会发现结果和xxx一样。那么分成若干个周期分别计算即可。主要时间花在找规律上。#include <bits/stdc++.h>using namespace std;typedef long lon
2020-10-03 14:50:04
169
原创 ZJUT12 Day2
ZJUT12 Day11、CF 963A Alternating Sumtags:数学一开始观察式子想到左右同乘(a−b)(a-b)(a−b)。因为(a−b)Σi=0nan−ibi=an+1−bn+1(a-b)\Sigma_{i=0}^na^{n-i}b^i=a^{n+1}-b^{n+1}(a−b)Σi=0nan−ibi=an+1−bn+1。然后发现化简出来的结果是s0an+1−snbn+1+Σi=0n−1(si+1−si)an−ibi+1s_0a^{n+1}-s_nb^{n+1}+\Sigma_
2020-10-02 21:59:19
2127
3
原创 ZJUT12 Day1
ZJUT12 Day11、CF 1367D Task On The Board比较水的构造。观察到bi=0b_i=0bi=0的位置上放的一定是最大值,每次选择最大值放进去,然后把前面的值减掉就可以了。题目保证数据一定有解,连存在性都不需要判断。实际上利用这个方法可以同时把存在性也判了。时间复杂度O(n2)O(n^2)O(n2)#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAX
2020-10-01 18:44:10
296
1
原创 2020牛客暑期多校训练营(第四场)
2020牛客暑期多校训练营(第四场)(2020.7.20)开始堇业,把之前欠的债补上。这场只出了两个水题。B、Basic GCD Problem题目看起来太复杂了。仔细分析以后其实是除掉最小质因数之后的那个数的次数+1。一开始质因数从1枚举哇了一发。我是弱智。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MOD = 1e9 + 7;const int MAXN = 1e6
2020-09-01 22:23:02
296
原创 2020牛客暑期多校训练营(第三场)
2020牛客暑期多校训练营(第三场)(2020.7.18)开始堇业,把之前欠的债补上。A、Clam and Fish有鱼的情况拿饵,后来用饵去换一条鱼实际上就是一换一,没区别。所以有鱼肯定拿鱼。没鱼的情况有饵肯定拿饵。但这么搞问题是如果全是饵的话就炸了。所以就是看当前饵能不能把剩下的池子全钓上来鱼,能的话就直接钓鱼了,后面就不需要拿饵了。这题还哇了好几次,气死我了。#include <bits/stdc++.h>using namespace std;const int MAX
2020-09-01 22:12:15
305
原创 2020牛客暑期多校训练营(第二场)
2020牛客暑期多校训练营(第二场)(2020.7.13)开始堇业,把之前欠的债补上。C、Cover the Tree这题啊,这题我在第四层,题目在第五层。最大数目一定是定的,就是叶子节点个数加一除二。麻烦的是构造。当时比赛的时候是想dfs序,然后首尾相连跑,哇到家都不认识。结果一看题解,是按中点左右对称跑…很烦。暂时先把标程挂着。#include <cstdio>#include <vector>#include <algorithm>using
2020-09-01 21:52:45
127
原创 2020牛客暑期多校训练营(第一场)
2020牛客暑期多校训练营(第一场)(2020.7.12)开始堇业,把之前欠的债补上。F、Infinite String Comparison这题就是类似于观察一下性质。其实可以发现把长度最长的那个串拼成两倍,之后在这个范围内一定能比较出大小。画个图,把相同的拼一拼就行了。如果到了两倍还没比较出大小就说明一定相等。#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ios::
2020-09-01 18:57:21
329
原创 2020牛客暑期多校训练营(第十场)
2020牛客暑期多校训练营(第十场)(2020.8.10)A、Permutation不会做。瞎搞。搞了三种方法全哇。浩大师1A了。具体方法就是每次乘2乘到循环之后乘个3继续乘2。#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#pragma warning(disable:4996)using
2020-08-10 23:04:44
373
原创 2020牛客暑期多校训练营(第九场)
2020牛客暑期多校训练营(第九场)(2020.8.8)刚刚补完上一篇博客,干脆今天不摸了,趁热打铁也写掉。A、Groundhog and 2-Power Representation一看是求表达式,再一看还要手搓大数。“璇大师,上python!”s = input()print(eval(s.replace('(', "**(")))是的,就这么短。我也傻了。E、Groundhog Chasing Death发现我还是适合做点数学题。比如这道。插曲:本来可以半小时内AC,结果哇了。百
2020-08-08 22:52:33
377
1
原创 2020牛客暑期多校训练营(第八场)
2020牛客暑期多校训练营(第八场)(2020.8.3)不要问我为什么现在才写,因为懒。全文口胡。I、Interesting Computer Game一开始以为是个匹配,结果旁边队冲了一发匈牙利被卡掉了。然后写不出来。结果打完看题解发现确实是个图论。把所有出现过的数字先离散化,然后若两数分在一组则中间连一条边。那么对于每一条边都只能选其中一个端点。考虑树形结构,则除了根节点以外其它节点都可以选到。而若在树形结构上多加一条边,则所有的节点都可以选了。所以最后只要弄一下图里连通块的数量,按照边数统
2020-08-08 21:52:39
382
原创 2020牛客暑期多校训练营(第七场)
2020牛客暑期多校训练营(第七场)(2020.8.1)B、Mask allocation可以看成把一个m×nm×nm×n的长方形划成若干个宽为111的矩形,使得存在两种分割方法能恰好填满长和宽。然后只要不断在矩形里划分正方形就行了。#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t; cin >> t; while (t--) {
2020-08-01 20:58:02
1294
1
原创 2020牛客暑期多校训练营(第六场)
2020牛客暑期多校训练营(第六场)(2020.7.27)B、Binary Vector虽然题目没有看懂,但是本场MVP浩大师发现了规律,f(x)=2x−12xf(x−1)f(x)={2^{x}-1\over 2^x}f(x-1)f(x)=2x2x−1f(x−1)。然后把程序打出来就AC了。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 2e7 + 10;const
2020-07-27 16:53:57
2560
原创 2020牛客暑期多校训练营(第五场)
2020牛客暑期多校训练营(第五场)(2020.7.25)D、Drop Voicing观察到若把ppp按顺时针排成一个环,每次执行第一种操作都不会改变元素的相对位置。因此在环上第一种操作可忽略不计。第二种操作对应到环上可理解为选定某元素pip_ipi并不断按逆时针顺序和前一个元素交换。对于每个元素pip_ipi,如果当前位置和升序排列中该元素的位置不同,只要进行一次操作就一定能保证能换到所要求的的升序排列中该元素所在的位置。所以只要枚举升序排列的起点位置,每次和给定的排列跑一遍最长公共子序列取最大值
2020-07-25 17:10:02
346
原创 Codeforces Round #654
Codeforces Round #654 (Div. 2)(2020.7.3)期末考完了补的第一场。考前打了一场,不过因为专心应考掉了30分。现在考完了做起题比之前舒服多了。这场开了vp,四十分钟出了四题。E本来想连着Hard Version一起做了,结果有点问题搞不出来。最后发现我的这个方法可以把Easy Version解决,然后才写了Easy Version。一个半小时出了五题。还应该再快一点的。顺便以后补题都用vp了。效果似乎比干做好。A、Magical Sticks等差数列。首尾相加肯定是
2020-07-03 20:37:04
303
1
原创 C++单链表实现
明天考试,今天手写个单链表试试水。本来以为挺简单的,没想到还是写了两个小时。一开始打算用模板类结果不太会用疯狂报错,最后只能搞个int型的。只放代码。和用vector写的程序对拍过后是正确的。#include <bits/stdc++.h>using namespace std;typedef long long ll;class List;class Node //节点类{private: int value; Node *next;public:
2020-07-02 01:16:47
235
转载 C++运算符重载总结(转)
期末复习,运算符重载的返回值要不要加引用很头疼。看到一篇总结得很全的博客就转了。仅供个人学习使用。原文地址:c++运算符重载总结c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。1.一般运算符重载在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。成员函数的形
2020-07-01 17:29:43
314
原创 C++中函数返回值为自定义类时不调用复制构造函数的问题
最近期末考试,忙着复习,ACM暂时鸽了。复习的时候手敲了一个程序想看看编译器是怎么调析构函数的,结果出问题了。问题是这样的:#include <bits/stdc++.h>using namespace std;typedef long long ll;class Complex{public: int r, i;public: Complex(int a, int b): r(a), i(b) { cout << "Constructor call
2020-06-30 20:58:07
776
原创 2017-2018 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2017)
2017-2018 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2017)(2020.5.31)昨晚修仙,今天这场确实打到一半就打不动了。反正也是一人一队,干脆后半场摸鱼。所以最后就搞了三道水题(哭A、Concerts就是这题做了我半天。一开始感觉O(nk)O(nk)O(nk)有1e71e71e7可能过不了,不过大哥说0.3s能过,然后我就大胆写了。这题考虑一个dpdpdp,设长度为kkk的串为aaa,另一
2020-05-31 17:40:48
484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅