自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 【jzoj5337】【NOIP2017提高A组模拟8.25】【夜莺与玫瑰】【莫比乌斯反演】

descriptionsolution我们可以发现一个性质ans=n+m+∑n−1i=1∑j=1m−1([(i,j)==1](n−i)(m−j)−[(i,j)==2](n−i)(m−j))ans=n+m+\sum_{i=1}^{n-1}\sum{j=1}^{m-1}([(i,j)==1](n-i)(m-j)-[(i,j)==2](n-i)(m-j))考虑两条重合的直线(以两个端点确定一条直线的线段)

2017-08-25 15:45:56 495

原创 【jzoj5338】【NOIP2017提高A组模拟8.25】【影子】【点分治】

descriptionsolution直接点分治,维护点权最小值和边权和,按点权最小值排序,两个指针维护一下最大值即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i

2017-08-25 11:51:13 425

原创 【jzoj5334】【NOIP2017提高A组模拟8.24】【空】【扫描线】【set】

descriptionsolution考虑用扫描线,可以发现有相交和内含两种情况,相交就是l+r的差,内含就是r-l的差,可以分别两次用set维护。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k)

2017-08-24 12:00:17 354

原创 【jzoj5335】【NOIP2017提高A组模拟8.24】【早苗】【矩阵乘法快速幂】

descriptionsolution设f[i][j]表示到第i天,往前j天不同的方案数,可以转移到f[i+1][k],当k<=j时系数是1,当k==j+1时系数是m-j,当然要保证j!=m,可以发现这时可以用矩阵乘法快速幂解决的。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorit

2017-08-24 11:39:23 426

原创 【jzoj3327】【陶陶的难题】【类欧几里得】

description陶陶给Crash出了一个大难题,他要求Crash计算出下面式子的值:其中A,B,C,L,R均为给定正整数。由于答案可能会很大,你只需要输出答案mod 1,000,000,007后的值。solution可以发现这就是裸的类欧,求出g即可。类欧几里得问题推导code#include<cstdio>#include<cmath>#include<cstring>#include

2017-08-23 21:56:44 427

原创 【类欧几里得学习小记】

类欧几里得算法因为形式上像欧几里得算法而得名,其时间复杂度也和欧几里得算法一致,类欧几里得算法有很多应用,下面只举部分例子。目标求出以下三个函数值f(a,b,c,d)=∑ni=0⌊ai+bc⌋f(a,b,c,d)=\sum_{i=0}^n\lfloor{ai+b\over c}\rfloorg(a,b,c,d)=∑ni=0i⌊ai+bc⌋g(a,b,c,d)=\sum_{i=0}^ni\lfloor

2017-08-23 21:54:05 359

原创 【jzoj5333】【NOIP2017提高A组模拟8.23】【大新闻】【可持久化线段树】

descriptionsolution可以发现把序列倒过来就是在队末加或删数维护前缀权值线段树即可, 这不就是主席树,直接做就可以了。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for(in

2017-08-23 14:15:46 281

原创 【jzoj5332】【NOIP2017提高A组模拟8.23】【密码】【ac自动机】【动态规划】

descriptionsolution先把秘钥建ac自动机,设f[i][j][k][l]表示现在填到第i位,对应ac自动机上j结点,包含k个秘钥,有没有顶上界,枚举下一个填什么转移即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long lon

2017-08-23 14:09:51 325

原创 【jzoj5328】【NOIP2017提高A组模拟8.22】【世界线】【bitset】

descriptionsolution这题显然要求一个点能通过边到达多少个点,这样我们可以用bitset来做,然而直接做会爆空间,可以考虑做两次,分别考虑和一半点的连通性。code#include<bitset>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#d

2017-08-22 15:22:00 370

原创 【jzoj5329】【NOIP2017提高A组模拟8.22】【时间机器】【数据结构】【扫描线】

descriptionsolution把机器和电阻按l排序,l相等时电阻排前面,扫描线从左往右扫,遇到电阻把右端点放入set,遇到机器lowerbound找到最小的r比机器的r大匹配即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long lo

2017-08-22 12:28:56 329

原创 【jzoj5322】【GDOI2017模拟8.21】【小朋友】【状态压缩动态规划】

descriptionsolution可以发现三人桌不会超过3个,设f[i][j][s]表示到第i个人,用了j个3人桌,往前k+1个人选取状态为s。每个状态最前的位为1就一定要安排一桌,暴力枚举即可,到了最后i要枚举到n+k+1,n以后的不算贡献,但是要保证n-k到n的人都被选完。code#include<cstdio>#include<cmath>#include<cstring>#incl

2017-08-21 14:21:21 268

原创 【jzoj5315】【NOIP2017提高A组模拟8.19】【小串串】【sam 】

descriptionsolution构出sam,求出fail树子树大小,贡献为size[x]^2*(mx[fa[x]]-mx[x])。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define ULL unsigned lo

2017-08-19 17:24:17 344

原创 【jzoj5306】【NOIP2017提高A组模拟8.18】【棋盘游戏】

description这个游戏上在一个无限大的棋盘上, 棋盘上只有一颗棋子在位置(x,y)(x,y>=0)棋盘的左下角是(0,0)Amphetamine每次都是第一个移动棋子,然后Amphetamine与Alphago轮流移动。每一轮可以做以下三种中的一种操作:1)在同一行,将棋子从当前位置向左移动任意格;2)在同一列,将棋子从当前位置向下移动任意格;3)将棋子从当前位置向下移动k格再向左移动k格(

2017-08-18 20:25:51 504

原创 【jzoj5305】【NOIP2017提高A组模拟8.18】【C】

descriptionsolutiontarjan缩环,一个环贡献2^1,跑lca即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#define

2017-08-18 11:40:28 325

原创 【jzoj5290】【NOIP2017提高组A组模拟8.17】【行程的交集】

Description豪哥生活在一个n个点的树形城市里面,每一天都要走来走去。虽然走的是比较的多,但是豪哥在这个城市里面的朋友并不是很多。当某一天,猴哥给他展现了一下大佬风范之后,豪哥决定要获得一些交往机会来提升交往能力。豪哥现在已经物色上了一条友,打算和它(豪哥并不让吃瓜群众知道性别)交往。豪哥现在spy了一下这个人的所有行程起点和终点,豪哥打算从终点开始走到起点与其相遇。但是豪哥是想找话题的,他

2017-08-17 22:10:50 364

原创 【jzoj5289】【NOIP2017提高组A组模拟8.17】【偷笑】【数据结构】

Descriptionberber走进机房,边敲门边喊:“我是哔哔”CRAZY转过头:“我警告你,哔哔刚刚来过!”“呵呵呵呵……”这时,哔哔站了起来,环顾四周:“你们笑什么?……”巧了,发出笑声的人都排成了一排,每个人刚开始发出的笑声值为a[i]的笑声。但是有些笑声哔哔是听不出来的,他只听得出笑声值只包含2和3的数字,比如说什么2333。但是同学们还是很会秀操作的。对于操作add l r x表示l

2017-08-17 16:10:42 701

原创 【jzoj5288】【NOIP2017提高组A组模拟8.17】【球场大佬】

Description每天下午,古猴都会去打羽毛球。但是古猴实在是太强了,他必须要到一些比较强的场去打。但是每个羽毛球场都有许多的人排着队,每次都只能上四个人,每个人都有自己的能力值,然而这四个人的总能力的高低与否才是古猴是否决定参加这个场的关键。每四个人的总能力值的定义是:任意选两个与另两个PK,能力值的贡献是较高的一组减去较低的一组。比如能力值为5和7的去PK 6和10的差值,那么用较高的减去较

2017-08-17 11:35:45 453

原创 【jzoj5286】【NOIP2017提高A组模拟8.16】【花花的森林 】【时间倒流】

题目大意解题思路离线时间倒流,逐渐加边,用并查集维护连通块直径,可以发现两个连通块合并新直径,一定是原来直径四个点组合之一,倍增算一下即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for

2017-08-16 12:32:32 285

原创 【jzoj5285】【NOIP提高组模拟赛A组8.16】【排序】

题目大意解题思路用栈模拟,如果后面没有比栈顶大的数就弹出栈即可。code#include<set>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) f

2017-08-16 11:45:14 257

原创 【jzoj5281】【NOIP提高组模拟A组8.15】【钦点】

题目大意解题思路用链表维护每个格子往右往下到那个格子,交换时更改边界连接即可,在原本的行和列之间加入空白列可以简化操作。code#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#defi

2017-08-15 21:29:00 315

原创 【jzoj3771】【NOI2015模拟8.15】【小 Z 的烦恼】

题目大意小 Z 最近遇上了大麻烦,他的数学分析挂科了。于是他只好找数分老师求情。善良的数分老师答应不挂他,但是要求小 Z 帮助他一起解决一个难题问题是这样的,现在有 n 个标号为 1~n 的球和 m 个盒子,每个球都可以放进且只能放进一个盒子里面,但是要满足如下的规则:1. 若把标号为 i 的球放进了第 j 个盒子,那么标号为 2*i 的球一定要在第 j+1 个盒子里面(若 j2. 若把标号为

2017-08-14 19:35:57 332

原创 【jzoj5251】【GDOI2018模拟8.11】【决战】【状态压缩动态规划】

题目大意解题思路设f[i][j][s]表示第i行放了j个哲学家01状态是s,预处理转移方法,计算j的上下界优化常数即可以通过。实在不行就手动开o2。code#pragma GCC optimize(2)#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL

2017-08-13 09:03:28 346

原创 【jzoj5250】【GDOI2018模拟8.11】【质数】

题目大意解题思路ans=∑ni=1∑d|i[(d,i/d)==1]ans=\sum_{i=1}^n\sum_{d|i}[(d,i/d)==1]因为2f(i)2^{f(i)}相当于从i的质因子中考虑选不选进一个数里,要么选要么不选,等同于拆成两个互质的数。ans=∑ni=1∑d|i∑p|d&&p|(i/d)[(d,i/d)==1]ans=\sum_{i=1}^n\sum_{d|i}\sum_{p|d\

2017-08-12 20:28:09 380

原创 【jzoj1617】【SCOI2005】【互不侵犯】【状态压缩动态规划】

题目大意在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。解题思路设f[i][j][k][s]表示到i,j这个格子,之前放了了k个国王,最后n+1个格子的状态为s,方案数是多少,转移就很简单了,只需滚动一下数组卡空间即可。code#include<cstdio>#include<cmath>#in

2017-08-11 15:48:09 248

原创 【jzoj5248】【NOIP2017提高A组模拟8.10】【花花的聚会】【动态规划】【可持久化线段树】

题目大意解题思路设f[i]表示i到根最小花费,用可持久化线段树维护到根的路径上的f,区间求最小值即可。code#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL long long#define ULL unsigned int#define fo(

2017-08-10 16:15:52 295

原创 【jzoj5247】【NOIP2017提高A组模拟8.10】【计算几何】【二分答案】

题目大意解题思路对点排序后显然满足二分性,手推一下就可判断是否相交。code#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL long long#define ULL unsigned int#define fo(i,j,k) for(int i=

2017-08-10 16:11:42 540

原创 【jzoj5232】【NOIP2017模拟A组模拟8.5】【带权排序】【线段树】

题目大意解题思路考虑维护f[i]表示填i时当前数期望前面有多少个数比自己小,发现添加一个数对f增加一个等差数列和一段定值,计算贡献时区间求和,可以用线段树维护。code#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL long long#define

2017-08-09 22:08:49 369

原创 【jzoj5246】【NOIP2017模拟8.8A组】【Trip】【笛卡尔树】【tarjan-lca】

题目大意多年之后,worldwideD厌倦竞争,隐居山林。他的家乡开始发展起了旅游业,在一条很长的主干道上,有N个旅游景点,按顺序编号为1到N。根据游客们网上的评分,第i个景点有一个评估值a[i],为了区分开不同的景点,评估值是两两不同的。今天有M组游客前来旅游,第i组游客选择遍历景点Li到景点Ri这一段路。他们搜到Li到Ri的所有评估值,如果对于景点j(Li≤j≤Ri),不存在景点x(Li≤x<j

2017-08-09 09:57:03 529

原创 【jzoj5239】【GDOI2018模拟8.7】【图的异或】【线性基】

题目大意解题思路dfs一遍,求出dfs树上s到t的异或和,把每个环的异或和加进线性基里面,枚举每个二进制位i,如果基里有x个数的第i位是1,对答案贡献2^(i+x-1),因为留出一个1调整答案,其他随便选即可。如果基里没有1,当s到t异或和第i位是1,对答案贡献2^(i+x-1),x是基里数的个数,否则没有贡献。code#include<cstdio>#include<cmath>#includ

2017-08-07 22:44:00 299

原创 【jzoj5237】【GDOI2018模拟8.7】【最长公共子序列 】【动态规划】

题目大意解题思路设f[i][j]表示a考虑前i个字符,b考虑前j个字符的lcs,g[i][j]表示长度为f[i][j]的匹配的个数。g[i][j]可以由g[i-1][j],g[i][j-1],g[i-1][j-1]中f相同的转移过来,但是如果f[i][j]==f[i-1][j]==f[i][j-1]==f[i-1][j-1],g[i][j]=g[i-1][j]+g[i][j-1]-g[i-1][j-

2017-08-07 15:23:51 385

原创 【jzoj5238】【GDOI2018模拟8.7】【的士碰撞】

题目大意n辆车在一条数轴上,车的编号为1到n。编号为i的车坐标为a[i],初始方向为dir[i](左或右),初始位置两两不同。每辆车每个时刻行走距离为1。两辆车相碰时,会调转方向,继续行走,掉头不消耗时间。现在车子开始朝其方向行驶,同一个坐标允许有多辆车。现在有q个询问,给出 t,i,询问过了t时刻后,编号为i的车的坐标的绝对值。解题思路发现两车相撞只会交换编号,而他们的编号对当前车是没有影响的,只

2017-08-07 11:58:18 423

原创 【jzoj3773】【NOI2015模拟8.15】【小 P 的烦恼】【动态规划】

题目大意小 P 最近遇上了大麻烦,他的高等代数挂科了。于是他只好找高代老师求情。善良的高代老师答应不挂他,但是要求小 P 帮助他一起解决一个难题。问题是这样的,高代老师近期要组织班上同学一起去漂流,漂流可以看做是在一张 n 个点 m 条边的有向无环图上进行的,点编号从 0 到 n-1 ,表示景点; 边是连接各景点的一定长度的河道。同时,定义编号为 s 是起点而 t 是终点。我们不妨把从 s 点到 t

2017-08-06 16:48:05 495

原创 【jzoj3769】【NOI2015模拟8.14】【A+B】

题目大意对于每个数字x,我们总可以把它表示成一些斐波拉切数字之和,比如8 = 5 + 3, 而22 = 21 + 1,因此我们可以写成 x = a1 * Fib1 + a2 * Fib2 + a3 * Fib3 + … + an * Fibn, 其中,Fib1 = 1, Fib2 = 2…. Fib[i] = Fib[i – 1] + Fib[I - 2], 且a[n] > 0.那么我们称ai

2017-08-06 15:53:34 258

原创 【jzoj5231】【NOIP2017模拟A组模拟8.5】【序列问题】 【分治】

题目大意解题思路考虑分治,统计跨国分治中心的区间的答案,从左到右枚举右端点,维护第一个左端点到分治中心max比分治中心到右端点大的位置,同理维护min,同时维护对答案的贡献即可。code#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL long lon

2017-08-05 17:35:04 635

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除