通过这道题学了伯努利数,写篇题解推一下 题目 先推一下式子 \[\sum_{i=1}^ni^d[gcd(i,n)=1] \] \[\sum_{i=1}^{n}i^d\sum_{k|i}\sum_{k|n}\mu(k) \] \[\sum_{k|n}\mu(k)\sum_{i=1}^{\frac{n}{k}}(ik)^d \] \[\sum_{k|n}\mu(k)k^d\sum_{i=1}^{\frac{n}{k}}i^d \] 我们发现这个东西不好预处理,那么我们再简化一下. 设 \(S_k(n…
Description 已知一个字符串S,求它有多少个形如A+B+A的子串(len(A)>=k,len(B)>=1 ). Input 第一行一个字符串,第二行一个数 k. Output 仅一行一个数,表示满足条件的子串数. Sample Input aaaaa 1 Sample Output 6 HINT 对于 100%的数据:n<=15000 , k<=100,且字符集为所有小写字母. Solution 这道题时限15s,明显O(n2)可以过.那么如果枚举某一端形成新的子串,用k…
奇奇怪怪的题目,不知道他要我们干什么. 我们观察一波局势,发现答案最大不过5.因为如果答案是6或以上的话,我们就至少要2^(5*5)个5*5的方格. 仔细计算一波时间复杂度,再信仰一波,坚信暴力压正解. #include<bits/stdc++.h> #define sight(c) ('0'<=c&&c<='9') #define N 200007 #define int long long using namespace std; inline void rea…
Round2轮到我出了>_<(目测总共10人参加 实际共七人) 具体情况: #1: KPM,360 #2:ccz181078,160 #3:child,150 可惜KPM没看到第一题样例里有0..(当然是我数据范围没写好TAT &题面出现严重错误..模数应该是10^9+9结果我题面里写成了10^9+7(坑了KPM80分.. 然而其他人只写暴力是什么鬼 Problem A pears: 实际情况: AC人数:3            平均分:45+ 远距离目测:   AC人数:5    …
Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 HINT hint 对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=10^7 思路 最近看了很多关于gcd和mod的题目. 通过最近几道题目了解了很多=.= 首先有这么一个性质:如果a∈[1,n],b∈[1,m],那么gcd(a,b)|k的有(n/k…
题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入样例#1: 复制 4 输出样例#1: 复制 4 说明 对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=10^7 来源:bzoj2818 本题数据为洛谷自造数据,使用CYaRon耗时5分钟完成数据制作. #include<iostream> #include<cstdio>…
#2461. 「2018 集训队互测 Day 1」完美的队列 传送门: https://loj.ac/problem/2461 题解: 直接做可能一次操作加入队列同时会弹出很多数字,无法维护:一个操作的有效区间是连续的,考虑找到操作x结束的时间ed[x],即执行(x,ed[x]]可以将x加入的数全部弹出,这样用一个vis记录数字次数就可以维护个数: 一种比较暴力的做法是:枚举x,用一个线段树维护还可以放多少个元素,枚举ed[x]更新,但是这样不满足单调性无法two-pointers; 考虑分块.…
题目来源:2018集训队互测 Round17 T2 题意: 题解: 显然我是不可能想出来的……但是觉得这题题解太神了就来搬(chao)一下……Orzpyz! 显然不会无解…… 为了方便计算石子个数,在最后面加一堆$a_i=c_i=\infty$的石子,确保每次取石子都可以取满$k$个: 先考虑$a_i=0$的情况: 设$f_{i,j}$表示只考虑第0到$i$堆石子,通关前$j$轮的最少操作次数: 设$g_{i,j}$表示只考虑第0到$i$堆石子,前$j$轮结束后再取若干次石子,每次取$k$个,使…
题面传送门 & 加强版题面传送门 竟然能独立做出 jxd 互测的题(及其加强版),震撼震撼(((故写题解以祭之 首先由于 \(a_1,a_2,\cdots,a_n\) 互不相同,故可以考虑求出所有集合 \(S=\{a_1,a_2,\cdots,a_n\}\) 的权值之和,然后答案乘上 \(n!\). 那么怎么求这个权值之和呢?首先有一个非常 naive 的 DP,\(dp_{i,j}\) 表示 \(1\sim i\) 中选了 \(j\) 个数,可得的集合的权值之和,那么显然有 \(dp_{i,j…
Description 给定一颗 \(n\) 个点的树,带边权. 你可以选出一个包含 \(1\) 顶点的连通块,连通块的权值为连接块内这些点的边权和. 求一种选法,使得这个选法的权值是所有选法中第 \(k\) 小的.如果不存在第 \(k\) 小的那输出最大的. 答案对 \(998244353\) 取模. Hint \(1\le n,k\le 10^5\) \(\text{边权} \in (0, 10^9]\) Solution 考虑一个现有的选法,我们考虑如何得到一个新的 尽量小的更大的 选法.…
8.22(结束后一天) __stdcall讲题qwq 全是CF原题 D1T1 一看像是结论题,打了下表,水过 没错就是结论题,直接暴力就好 D1T2 看起来不好做,没有AC思路 打了暴力 40分 T2直接做会爆long long,所以暴力只有40分 然后要考虑一些结论和性质 就是根据数据范围,合理删去区间并跳过不必要的点 D1T3 法法! 二分写丑了 只有10分 回头再补 正解好像就是二分,但是check要用DP,令人惊讶的操作 似乎不能贪心check的说 __stdcall说这题是\( O(n…
https://www.lydsy.com/JudgeOnline/problem.php?id=3938 http://uoj.ac/problem/88 小q有n只机器人,一开始他把机器人放在了一条数轴上,第i只机器人在ai的位置上静止,而自己站在原点.在这之后小q会执行一些操作,他想要命令一个机器人向左或者向右移动x格.但是机器人似乎听不清小q的命令,事实上它们会以每秒x格的速度匀速移动.看着自己的机器人越走越远,小q很着急,他想知道当前离他(原点)最远的机器人有多远.具体的操作以及询问见…
题目链接 https://loj.ac/problem/3069 题解 复数真神奇. 一句话题意:令 \(f(x)\) 表示以原点 \((0, 0)\) 为圆心,半径为 \(x\) 的圆上的整点数量,求 \(\sum_\limits{i = 1}^N f(i)^k \bmod P\) 的值. 令 \(g(x) = \frac{f(x)}{4}\),那么我们需要求 \(\left(4^k\sum_\limits{i = 1}^Ng(i)^k\right) \bmod P\).打表可得 \(g(x)…
题意 给出\(n\)个01字节和\(m\)个01字节,要求用后者去匹配前者,两个串能匹配当且仅当除了每个字节末位不同,其他位都要相同.问匹配后者至少有多少个末位不同.(\(1 \le m \le n \le 2.5 \times 10^5\)) 分析 首先我们可以用kmp计算出能匹配的位置,然后单独考虑末位不同的情况. 题解 我们将末尾的位提取出来,则考虑\(n\)个\(01\)位和\(m\)个\(01\)位.对于模板串的\(01\)位,我们需要计算以这个位置结束与匹配串位相同的数目,发现其实我…
题意 给两个树,大小分别为n和m,现在两棵树各选一些点(包括1),使得这棵树以1号点为根同构(同构就是每个点的孩子数目相同),求最大的同构树.(n, m<=500) 分析 我们从两棵树中各取出一个点,考虑以这两个点为根能得到的最大同构数. 题解 容易得到: 设\(d(i, j)\)表示第一棵树选\(i\)号点,第二棵树选\(j\)号点所能得到的最大同构数. 那么\(d(i, j)\)就是等于从\(i\)这个点的子树选一些点,从\(j\)这个点的子树选一些点,选出的点数目相同,一一匹配,则答案就是…
题意 给出一棵n个点的树,求包含1号点的第k小的连通块权值和.(\(n<=10^5\)) 分析 k小一般考虑堆... 题解 堆中关键字为\(s(x)+min(a)\),其中\(s(x)\)表示\(x\)状态的权值和,\(min(a)\)表示\(x\)状态相邻的不在\(x\)里的的点的最小权值. 每一次从堆中弹出最小的,然后用这个来拓展. 可以证明,这样第\(k\)次弹出来的状态\(x \cup \\{ a \\}\)就是\(k\)小的. 证明很简单,堆中的都是待拓展状态,每一次取出来\(x \c…
Case 1 题意 要求给出下面代码的答案然后构造输入. 给一个图, n 个点 m 条边 q 次询问,输出所有点对之间最大权值最小的路径. 题解 把每一个询问的输出看成一条边,建一棵最小生成树. Case 3 题意 给输出,要求构造输入使得用所给代码运行后得到的输出和给出的输出相同. 所给代码:n 次 Dijkstra 求两点间最短路 分析 考虑一下贪心. 题解 首先还是把每一条最短路的询问结果看成一条边,然后我们把这些边排序. 对于每一条边,如果这两个点现在的距离大于这条边的权值,我们就把这条…
题意 给定两个字符串 A 和 B,求下面四个问题的答案: 1.在 A 的子串中,不是 B 的子串的字符串的数量. 2.在 A 的子串中,不是 B 的子序列的字符串的数量. 3.在 A 的子序列中,不是 B 的子串的字符串的数量. 4.在 A 的子序列中,不是 B 的子序列的字符串的数量. 其中子串是指本质不同的子串,不同的位置相同的串也只算一个串 |S|<=2000 分析 构造俩自动机然后同时跑 题解 构造一个子序列自动机,再构造一个后缀自动机,然后从根依次转移,记录状态上的信息,记忆化一下.…
题意 给一个\(N \times M\)的01网格,1不能走,从起点\((1, 1)\)走到\((N, M)\),每次只能向下或向右走一格,问两条不相交的路径的方案数.(n, m<=1000) 分析 先考虑一条,再考虑去掉相交的情况. 题解 令\(d(a, b, c, d)\)表示从\((a, b)\)走到\((c, d)\)一条路径的方案数,则可以简单得到答案: \[Ans = d(2, 1, n, m-1) + d(1, 2, n-1, m) - T\] 我们来考虑任意两条相交路径. 令\(…
[C003]LJX的校园:入学典礼[难度C]—————————————————————————————————————————————————————————————————————————————————————— [题目要求] LJX上中学啦!他与YSM,YSF,WHT,LTJ等人都是校友.今天,是他人生中“溺亡”的一天.今天,他要向同学们证明他的数学很“乐呵”. 于是,刚学会简单的A+B问题的他,在课上,向冤  家对头 斯沃琪 挑战 QAQ,斯沃琪 队有YZM,SJY,ZZQ等人.而LJX…
题目描述 http://uoj.ac/problem/88 题解 维护两颗线段树,维护最大值和最小值,因为每次只有单点查询,所以可以直接在区间插入线段就可以了. 注意卡常,不要写STL,用链表把同类修改串起来就好了. 代码 %:pragma GCC optimize() %:pragma GCC optimize() #include<iostream> #include<cstdio> #include<algorithm> #include<cmath>…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ191.html 题目传送门 - UOJ191 题意 自行移步集训队论文2016中罗哲正的论文. 题解 自行移步集训队论文2016中罗哲正的论文. 代码 所以说我就是来存代码的? #include <bits/stdc++.h> using namespace std; typedef long long LL; LL read(){ LL x=0,f=0; char ch=getchar(); whi…
享受爆零的快感 老叶本来是让初三的打的,然后我SB的去凑热闹了 TM的T2写炸了(去你妹的优化),T1连-1的分都忘记判了,T3理所当然的不会 光荣革命啊! T1 思维图论题,CHJ dalao给出了正解但-1输成0了缅怀 而且这题不能用读优玄学 思路也很新奇,先跑一遍MST,判断是否有无解的情况 然后看一下MST中与1相连的边有几条 如果小于k那么我们把所有与1相连的边减上一个值使它们优先被选,然后跑MST 大于k就加上去即可 注意到这个值可以二分,因此不停做MST即可 CODE #inclu…
题目 描述 ​ \(0-n-1\)的图,满足\(n\)是\(2\)的整数次幂, $ i \to j $ 有 $ A_{i,j} $ 条路径: ​ 一条路径的愉悦值定义为起点和终点编号的\(and\)值; ​ 可以走多条路径: ​ 询问对于\(x \in [1,m] \ , \ y \in [0,n)\),总步数为\(x\),所有路径愉悦值\(and\)和为\(y\)的方案数: ​ 你只需要输出他们的异或值: 范围 ​ $n\le 64  ,  m \le 20000 $; 题解 令\(w_{i,…
题目链接 LOJ2476:https://loj.ac/problem/2476 LOJ2565:https://loj.ac/problem/2565 题解 参考照搬了 wxh 的博客. 为了方便,下文用 \((x, y)\) 表示 \({\rm gcd}(x, y)\). 先分析 LOJ2476. 注意到对于任意一个数组 \(a\),第 \(x\) 项的值 \(a_x\) 可以展开写成 \(\sum_\limits{i = 1}^{x} a_i[i = x]\),进一步地,有: \[\beg…
Description Solution 我们考虑将问题一步步拆解 第一步求出\(F_{S,i}\)表示一次旅行按位与的值为S,走了i步的方案数. 第二步答案是\(F_{S,i}\)的二维重复卷积,记答案为\(S_{S,i}\),那么\(F_{S,i}\times S_{T,j}\)能够贡献到\(S_{S\&T,i+j}\). 上下两部分是两个问题,我们分开来看. 考虑第一步 设原矩阵为A 根据定义,\[F_{S,i}=\sum\limits_{x\&y=T}A^i_{x,y}\] 容易看…
目录 @(Alpha2项目测试) 这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求的链接 团队名称 你的代码我的发 这个作业的目标 其他参考文献 软件测试用例 姓名 学号 团队名称 李涵 201731062406 你的代码我的发 鉴于之前我在本组组内担任测试人员,积累了一定的测试B/S web项目的经验 ,于是找了三个B/S web项目进行测试希望能够帮助他们发现项目中存在的一些问题,做出更加完善的Beta版本. 我的测试用例设计参考了本博客开头参考资料中所给出的博客(再次给出该博客…
题目 题目大意 平面上有一堆带权值的点.两种操作:交换两个点的权值,查找一个矩形的第\(k\)小 \(N<=60000\) \(M<=10000\) \(10000ms\) 思考历程&各种可能过的方法 先是想了一会儿,然后突然发现一个惊天大秘密:\(10000ms\)! 然后就想出个\(O(NM)\)的做法-- 将矩形内的所有点找出来,然后\(O(N)\)求第\(k\)大-- 于是爆\(0\)了.后来才发现是输出的时候漏了句号,而且给出的矩形有\(x0>x1\)或\(y0>…
目录 @description@ @solution@ @part - 0@ @part - 1@ @accepted code@ @details@ @description@ 小 D 有 n 个 std::queue,他把它们编号为 1 到 n. 小 D 对每个队列有不同的喜爱程度,如果有他不怎么喜欢的队列占用了太大的内存,小 D 就会不开心. 具体地说,如果第 i 个队列的 size() 大于 ai,小 D 就会对这个队列一直执行 pop() 直到其 size() 小等于 ai. 现在这些…
tree 内存限制:512 MiB 时间限制:3000 ms 标准输入输出 题目类型:传统 评测方式:文本比较   题目描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树.题目保证有解. 输入格式 第一行V,E,need分别表示点数,边数和需要的白色边数.接下来E行,每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色). 输出格式 一行表示所求生成树的边权和.V<=50000,E<=100000,所有数据边权为[1,…