20180523模拟赛T2——前缀!】的更多相关文章

简化版题面 jyt毒瘤,写了超长的题面,要看完整题面的翻到最后-- 定义\(f_0(x) = A_x\),\(f_n(x) = \sum^x_{i = 1} f_{n-1}(i)\).给出长度为\(N\)的数组\(A\)(从\(1\)~\(n\)编号)和\(Q\)个操作.操作有两种:Add i j表示将\(A_i\)的值加上\(j(j\le P)\):Query i j表示询问\(f_i(j)\)的值\((1\le M)\),由于答案可能会很大, mod P后的答案即可,\(P=1,000,00…
(a.cpp/c/pas) Time Limit:1 Sec Memory Limit:128 MB 简化版题意 jyt毒瘤,写了超长的题面,要看完整题面的翻到最后-- 老太太认为一个长度为 N 的仅由'0'.'1'.'2'三个字符组成的字符串是贾家的,当且仅当这个字符串满足以下几点: 这个字符串的所有前缀(不包括这个串本身)都是贾家的. 这个字符串中字符'2'出现的个数不少于字符'1'出现的个数. 这个字符串中字符'1'出现的个数不少于字符'0'出现的个数. 请你求出有多少个长度为 N 的字符…
模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. 时间复杂度\(O(mn3)\). 期望得分20分. 2.2 算法 2 不难发现给定区间之外的位置对每个询问的答案无影响,所以每次的问题就是取出一个子段,问这个子段怎样交换一次字典序最小. 根据字典序定义,我们需要找到最小的位置满足通过交换可以使这个位置变小,也就是说这个位置不是后缀最小值,因此从后…
卢卡斯定理 题目中说到\(p\)是质数. 而此时要求组合数向质数取模的结果,就可以用卢卡斯定理: \[C_x^y=C_{x\ div\ p}^{y\ div\ p}\cdot C_{x\ mod\ p}^{y\ mod\ p}\] 也就是说,我们可以把\(x\)和\(y\)转化成两个\(p\)进制数,然后每一位分别求组合数后再乘起来. 所以问题来了,什么时候一个组合数的值模\(p\)为\(0\)? 由于它是质数,所以对于一个组合数\(C_a^b\),当且仅当\(a<b\)时它的值才会为\(0\)…
森林 考虑到题目中给出条件两点间至多只有一条路径. 就可以发现,这是一个森林. 而森林有一个很有用的性质. 考虑对于一棵树,点数-边数=\(1\). 因此对于一个森林,点数-边数=连通块个数. 所以,我们只要前缀和求出询问区间内的点数和边数,就可以计算出连通块个数了. 注意边数要分两个方向讨论,然后询问时注意防止越界. 代码 #include<bits/stdc++.h> #define Tp template<typename Ty> #define Ts template<…
昨天 ych 的膜你赛,这道题我 O ( n4 ) 暴力拿了 60 pts. 这道题的做法还挺妙的,我搞了将近一天呢qwq 题解 60 pts 根据题目给出的式子,四层 for 循环暴力枚举统计答案即可: #include<iostream> #include<cstdio> using namespace std; int read() { char ch=getchar(); ,x=; ') { if(ch=='-') x=-x; ch=getchar(); } ') { a=…
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 vi 的金坷垃,或者除掉最 新 vi 层(不是量)撒的金坷垃.如果上面只留有不足 vi 层金坷垃,那么就相当于电脑上 面没有金坷垃了. duyege 非常严谨,一开始先给你 m 个上述操作要你依次完成.然后又对实验步骤进行 了 q 次更改,每次更改都会改变其中一个操作为另外一个操作.每次修改之后都…
小澳的坐标系 (coordinate.cpp/c/pas) [题目描述] 小澳者表也,数学者景也,表动则景随矣. 小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过. 小澳的梦境中出现了一个平面直角坐标系,自原点,向四方无限延伸. 小澳在坐标系的原点,他可以向上.向左或者向右走.他可以走n步,但不能经过相同的点. 小澳想知道他有多少种走法. [输入格式] 输入文件名为coordinate.in. 输入文件仅第一行一个正整数n,表示小澳可以走的步数.   [输出格式] 输出文件名为coo…
LGTB 学分块 LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成3 块今天他得到了一个数组,他突然也想把它分块,他想知道,把这个数组分成3 块,块可以为空.假设3 块各自的和中的最大值最小请输出分完之后3 块中的最大值 输入 输入第一行包含一个整数n 代表数组大小接下来n 个整数a1, a2, ..., an,代表数组对于40% 的数据,1 n 10对于70% 的数据,1 n 103对于100% 的数据,1 n 105, 1 ai 107 输出 输出包含1 个整数,…
二兵的赌注 Description游戏中,二兵要进入了一家奇怪的赌场.赌场中有n个庄家,每个庄家都可以猜大猜小,猜一次一元钱.每一次开彩前,你都可以到任意个庄家那里下赌注.如果开彩结果是大,你就可以得到你之前猜大的庄家相应的ai元钱.如果开彩结果是小,你就可以得到你之前猜小的庄家相应的bi元钱.你可以在同一个庄家那里既猜大又猜小,(这样是两块钱),也可以什么都不猜(这样不用钱).问怎么样下注,才能赢得最多的有保障的钱.有保障的钱指不管开彩结果是大是小,你都能够赢得相应的钱.你能帮助他计算这个值吗…