SDOI 2016 Round1 Day1】的更多相关文章

考场上写了lct,可惜当时对标记永久化的理解并不是十分深刻,导致调一个错误的程序调了4h+,最后这道题爆0了QwQ 现在写了树链剖分,用标记永久化的线段树维护轻重链,对于$s\rightarrow lca$,$lca\rightarrow t$分开讨论,把$a×dist+b$这个式子打开,提出常数项,发现是一个一次函数(也不是严格的一次函数,只不过有单调性就可以做了).标记永久化线段树做一下,每个节点维护一个当前区间的最小值就可以统计答案了233 这次又手残把“+”打成“*”调了一上午TwT,肉…
储能表 /* 引自zyz大佬的数学思想 */ #include<cstdio> #include<iostream> using namespace std; typedef long long ll; #ifdef WIN32 #define LL "%I64d" #else #define LL "%lld" #endif ll k;int T,p; int calc(ll x,ll i,ll j){ if(i<j) swap(i,…
本蒟蒻第一次没看题解A的题竟然是省选$Round1$ $Day2$ $T2$ 这道组合数学题. 考试时一开始以为是莫队,后来想到自己不会组合数的一些公式,便弃疗了去做第三题,,, 做完第三题后再回来看这道题,想到暴力算$组合数×错排$,我记得有一天晚上$Snayvals$问过我错排公式怎么推,但我并没有在意!!!幸亏我知道错排可以线性推出来,便开始用笔推错排公式.推了$30min$发现有计算机为什么不用!!!便打了一个表,很快就找出了规律$f[i]=(f[i-1]*f[i-2])*(i-1)$…
2016-05-21因为BZOJ上“ 数据文件太过巨大,仅提供前三组数据测试.”所以我考场上写的60分的点分治交上去也A了. 我的这个点分治的时间复杂度是$O(Tnmlogn)$的,听题解时没听懂$O(Tnlogn)$的标算,还有听说标算要用到字符串哈希,然而我并不会,所以先留个坑,贴上自己的60分代码,满分做法等我学会哈希之后再做 #include<cstdio> #include<cstring> #include<algorithm> using namespac…
我第一次写游记,,,, 正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪…
比较明显的斜率优化DP,省选时因为时间太紧张和斜率DP写得不熟等原因只写了60分的暴力DP,其实当时完全可以对拍来检验标算的正确,但是我当时too naive- 很快打完了,调了将近一晚上QAQ,因为脑残地把两个变量名打反了.错在这上面却只有一组WA,所以总是在想一些奇葩的错误(数组越界什么的,int没有强转long long←几天前做数论和FFT留下的后遗症),没有先认真地静态查错.以后一定要认真仔细,杜绝手残的行为!比赛时绝不会有这么长的调试时间,手残一次就会滚粗了QuQ #include<…
生成魔咒 /* 后缀数组+双向链表 参照:https://blog.csdn.net/clove_unique/article/details/53911757 */ #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int n,cnt,c[N],ans[N],s[N],t[N],rank[N],trank[N],sa[N],tsa[N],h[N],nxt[N],p…
\(SDOI~2019 ~ Round1\) 游记 \(Day ~0\) 报道.骑车子去的,好热.到了之后看到好几个同校神仙,还从那里莫名其妙的等了一会,然后交了钱签了名就拿挂牌走人了.现在居然还有受现金的?而且没有试机,有点懵. 骑车回去一路上坡,热的要死.回家后一直在学歌,晚上早睡了. \(Day~1\) 去的有点早,碰到了子谦. 读了读编译说明,不是很懂,不想看,导致我这一天的程序一直在出锅. 发码后看题: \(A\)题:疑似可做. \(B\)题:疑似可做. \(C\)题:啊总算知道为什么…
树链剖分 线段树维护区间最小值,区间最大值 更新,对于每一个区间,找到当前区间的最小值的最大值,和要更新的值比较,如果比最大值还大,则此数对于以后的询问无任何贡献,直接返回即可,若有贡献,则一直递归到叶子节点,将最值全部更新 询问,直接询问区间最小值即可 /* Alice 和 Bob 在玩一个游戏. 游戏在一棵有 n 个点的树上进行.最初,每个点上都只有一个数字,那个数字是 123456789123456789. 有时,Alice 会选择一条从 s 到 t 的路径,在这条路径上的每一个点上都添加…
题目大意:给定n个数字以及每个数字的个数和权值,将满足条件的数字配对,使得总代价不小于0,且配对最多 最大费用最大流拆点,对于每个点,连一条由S到该点的边,容量为b,花费为0,再连一条到T的边 对于每个合法的配对,连一条容量无穷,费用为ci*cj的边 跑最大费用最大流即可 #include<bits/stdc++.h> using namespace std; #define inf (1ll<<50) #define ll long long struct edge{ int t…
题目大意:有一个数列,将其分成m段,求最小方差 先弄出n^3的dp,打出决策点,然后发现决策点是单调递增的,决策单调性搞一搞就可以了 #include<bits/stdc++.h> #define ll long long #define maxn 3010 using namespace std; int n,m; int a[maxn],sum[maxn]; double f[maxn][maxn],x; double sqr(double x){return x*x;} void sol…
题目大意:一个字符串,刚开始为空,依次在后面添加一个字符,问每次添加完字符后本质不同的字符串有多少种 后缀自动机裸题,添加字符时,更新的结点个数即为新增加的子串 #include<bits/stdc++.h> using namespace std; inline int read(){ ;char ch=getchar(); ';ch=getchar()); +ch-'; return s; } struct sam{ int cnt,last; ],l[]; map<]; long…
题目大意:一个数列A,n个元素,其中m个元素不动,其他元素均不在相应位置,问有多少种排列 保证m个元素不动,组合数学直接计算,剩余元素错位排列一下即可 #include<bits/stdc++.h> #define ll long long #define mod 1000000007 using namespace std; ]; ]; ]; int T,n,m; int power(int x,int y){ ; while(y){ )s=1ll*s*x%mod; y>>=,x…
http://www.lydsy.com/JudgeOnline/problem.php?id=4600 转化成nim游戏 因为对于每一个反面朝上的硬币编号可以拆成\(2^a3^bc\),选择这个硬币可以翻的其他硬币的编号必须是c的倍数. 那么如果两个单一游戏的c不同的话,只要a和b相同,那么状态的sg值也相同,所以存sg函数的状态时不用考虑c,只用考虑a和b即可. 暴力枚举子状态进行转移. 小神说这是博弈里比较水的一道题QwQ #include<cstdio> #include<vec…
http://www.lydsy.com/JudgeOnline/problem.php?id=4516 后缀自动机直接做...省选时cena评测竟然没有卡掉map 每次加一个字符,增加的子串数目为np的max减去np的值parent的max值. 时间复杂度\(O(nlogn)\). #include<map> #include<cstdio> #include<cstring> #include<algorithm> using namespace std…
4515: [Sdoi2016]游戏 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 351  Solved: 157[Submit][Status][Discuss] Description Alice 和 Bob 在玩一个游戏. 游戏在一棵有 n 个点的树上进行.最初,每个点上都只有一个数字,那个数字是 123456789123456789. 有时,Alice 会选择一条从 s 到 t 的路径,在这条路径上的每一个点上都添加一个数字.对于路径上…
Description 题库链接 将一个长度为 \(n\) 的正整数序列分为 \(m\) 段,问你这 \(m\) 段最小的方差 \(v\) 为多少.输出 \(v\times m^2\) . \(1\leq n\leq 3000\) Solution 容易发现答案就是: \[m^2\frac{\sum\limits_{i=1}^m(a_i-\overline{a})^2}{m}=m\sum\limits_{i=1}^m\left(a_i-\frac{\sum\limits_{i=1}^m a_i}…
Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2]. 一个魔咒串 S 的非空字串被称为魔咒串 S 的生成魔咒. 例如 S=[1,2,1] 时,它的生成魔咒有 [1].[2].[1,2].[2,1].[1,2,1] 五种.S=[1,1,1] 时,它的生成魔咒有 [1].[1,1].[1,1,1] 三种.最初 S 为空串.共进行 n 次操作,每次操作是在 S 的结尾加入一个魔咒字符.每次操作后都需要求出,当前的魔咒…
Problem Description 小 C 同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一棵包含 \(n\) 个结点和 \(n - 1\) 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达.树上结点编号为从 \(1\) 到 \(n\) 的连续正整数. 现在有 \(m\) 个玩家,第 \(i\) 个玩家的起点为 \(S_i\),终点为 \(T_i\).每…
https://vijos.org/p/1998 三维计算几何. 需要混合积求四面体体积: 四面体剖分后合并带权重心求总重心: 四面体重心的横纵坐标是四个顶点的横纵坐标的平均数: 三维差积求平面的法向量: 点积求法向量夹角(二面角) 这些知识就可以了AC此题了. 时间复杂度\(O(nf)\),注意\(n,f\leq 100\),题面描述有误. #include<cmath> #include<cstdio> #include<cstring> #include<a…
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4518 首先推式子,我们用$x_i$表示第$i$段的路程,$sum$表示总路程,根据方差和平均数的定义,有: $ \Large sum = \sum\limits_{i=1}^{m}{x_i} \\ $$ \Large \bar{x} = \frac{sum}{m} \\ $$ \Large ans = \frac{ \sum\limits_{i=1}^{m}{ (x_i - \bar{x}…
Day 1 T1 数字表格 题目大意 · 求\(\prod\limits_{i=1}^n\prod\limits_{j=1}^mFibonacci(\gcd(i,j))\),\(T\leq1000\),\(n,m\leq10^6\) 思路 · 一言不合化式子(不失一般性地假设\(n<m\))\[\begin{aligned} ans&=\prod_{i=1}^n\prod_{j=1}^mf((i,j))\\ &=\prod_{d=1}^nf(d)^{\sum\limits_{i=1}…
http://www.lydsy.com/JudgeOnline/problem.php?id=4513 设\(f(i,0/1,0/1,0/1)\)和\(g(i,0/1,0/1,0/1)\)分别表示dp到第i位xx卡不卡n的上界,yy卡不卡m的上界,xx xor yy卡不卡k的下界的数字总和和数字个数. 转移时枚举上一位的状态和这一位的数字来转移,这一位的状态可以通过前两者算出来. 当有多个数的时候可以把它们放在一起dp!!! #include<cstdio> #include<cstr…
不知道有几个AK的,除了出题人SB搬了个BZOJ3779以外,应该没什么因素阻碍AK吧.要是SCOI考这套题多好. BZOJ4816 数字表格 SB反演,推出答案为$\prod_{i=1}^nf^{\sum_{j=1}^{\left\lfloor\frac ni\right\rfloor}\mu(j)\left\lfloor\frac n{ij}\right\rfloor\left\lfloor\frac m{ij}\right\rfloor}(i)$,直接$O(n^{3/4}+n^{1/2}\…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4517 [算法] 有m个数在原来的位置上,说明有(n-m)个数不再原来的位置上 那么,我们可以选出(n-m)个数,使这(n-m)个数都不在原来的位置上,再让剩下的m个数都在原来的位置上 错位排列递推公式 :           f(1) = 0           f(2) = 1           f(n) = (n - 1)(f(n-1) + f(n-2)) (n >= 2)…
\(\mathcal{Description}\)   Link.   (概括得说不清话了还是去看原题吧 qwq. \(\mathcal{Solution}\)   首先剔除回文串--它们一定对答案产生 \(1\) 的贡献.我们称一个句子是"正序"的,当且仅当句子的所有单词同时满足自己的字典序不小于翻转后的字典序:"逆序"则当且仅当句子的所有单词同时满足自己的字典序严格大于翻转后的字典序.从这条显眼的性质入手:   此外观察者发现,对每一行(列)来说,按照确定后的阅…
再水一道模板题,明天就要出发去参加二轮省选了赶紧复习复习模板. 链剖模板题,可是写链剖太麻烦了,还是写lct吧. 但这个lct比较麻烦了,因为边权有正有负,要统计最大值和最小值,这样点权赋为什么值都会妨碍统计. 想了半天,后来发现自己脑抽了,统计的时候特判一下当前点是点还是边不就可以了吗? 裸的模板题调了好久啊,因为后来往原先错误的程序加上上述特判时总是漏这漏那,以后一定要认真思考每个细节确保无误后再开始写代码,这样脑子里有一个清晰的框架,写起来更快,而且不容易出错,大大节省了调试的时间.切忌边…
COGS 2221. [SDOI2016 Round1] 数字配对 http://www.cogs.pro/cogs/problem/problem.php?pid=2221 ★★★   输入文件:menci_pair.in   输出文件:menci_pair.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 aiaj 是一个质数,那么这两…
[SDOI2016 Round1] 数字配对 ★★★ 输入文件:menci_pair.in 输出文件:menci_pair.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数,那么这两个数字可以配对,并获得 ci×cj 的价值. 一个数字只能参与一次配对,可以不参与配对. 在获得的价值总和不小于 0 的前提下,求最多进行多少…
这里大概是一些我自己对我的OI之路的一些记录. 2015.11不知道哪一天-- 我听说了"编程". 当时还不懂得啥是信息学竞赛,以为这只是纯粹的程序设计.后来才明白信息学竞赛是算法竞赛不是编程竞赛. 那一天写出了Hello World 以及一个给两个数排序的程序. 7天之后 写出了给三个.四个数排序的程序.学会了冒泡排序. 21天之后 做了第一道OI题目. 29天之后 学了快速排序.小学的我无法理解. 2016年某一天 参加了第一次信息学竞赛,虽然是市级别的,且结果到现在未出. 201…