自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FFT学习小记

OI中会遇到计算卷积形式的式子的问题,要用到FFT例题:【zjoi2014】力 【tjoi&heoi2016】求和实数的运算FFT分为两部分:点值和插值运算 c=a*b,次数界为n 首先是点值:对a和b求在n次单位复数根下的点值点值对((W0n,y0W_n^0,y0),(W1n,y1W_n^1,y1)…(Wn−1n,yn−1W_n^{n-1},yn-1))然后两个相乘得出c的点值对,再运用

2016-07-24 19:50:37 704

原创 [bzoj4361]Isn

题目大意给定一个长度为n的序列A,如果当前序列不是不下降的,就必须删去其中一个数,直到得到一个不下降的序列,求可以的操作方案数模1000000007。数据范围10%:n≤10 30%:n≤20 45%:n≤50 65%:n≤200 100%:1≤n≤2000暴力做法10%直接上暴力。30%枚举哪些数删去,然后找出能最后一个删去的数,放在最后一个后剩下随便排列。 什么数能放在最后删去?假设第

2016-07-20 18:25:12 612

原创 【SDOI2013】保护出题人

Description​出题人铭铭认为给SDOI2012 出题太可怕了,因为总要被骂,于是他又给SDOI2013 出题了。 参加SDOI2012 的小朋友们释放出大量的僵尸,企图攻击铭铭的家。而你作为SDOI2013的参赛者,你需要保护出题人铭铭。 僵尸从唯一一条笔直道路接近,你们需要在铭铭的房门前放置植物攻击僵尸,避免僵尸碰到房子。第一关,一只血量为a1 点的僵尸从距离房子x1 米处匀速接近,

2016-07-19 19:03:51 503

原创 [51nod1647]小Z的trie

Description小Z打算去冲击省选,于是开始学习trie。 有一天,他得到了N个字符串。 他先建立一个根节点,对于每一个字符串,他都从根节点开始一点点插入。 小Z不满足于此。他的大脑里盘旋着M个问题: 如果给定一个二元组(s,t)(s,t都是trie中的节点且s是t的祖先), 存在多少个二元组(x,y)(x,y都是trie中的节点且x是y的祖先), 满足s~t路径上的字符串和

2016-07-18 20:36:56 703

原创 KM算法学习小记

问题描述给定一个二分图,其中每条边都有一个权值,求图的最大权完备匹配。 完备匹配指ans=|A|=|B|,其中ans为二分图的最大匹配,A、B是二分图两个互不相交的点集。这个问题可以直接跑费用流,当然还有另一种方法,就是KM算法。主要实现为每个点设一个顶标Li,当Li+Lj=Wi,j时才能选择边(i,j),不能选择时Li+Lj>Wi,j。 然后像匈牙利一样,枚举每个A集合的点,然后去找增广轨。

2016-07-17 19:13:06 807

原创 [Scoi2016]美味

题目大意给你n个数及m个询问,每个询问给出四个整数b,x,l,r,你要在[l,r]区间内找出一个i,使b xor (a[i]+x)最大,输出这个最大值。数据范围n≤200000 其它数字均为不超过100000的非负整数分析当没有这个x时,这就是一个裸的可持久化trie的问题。 但是现在加了一个x。 那么考虑查找这个ai+x。按二进制位从上往下查找。假设当前查到了二进制的第i位,那么这一位尽

2016-07-16 18:10:46 535

原创 [Scoi2016]背单词

做的时候题意理解错了,然后爆0。。题目大意给你n个两两不同字符串,把它们按任意顺序排列。对于排列中的第i个字符串: 1. 如果存在一个字符串是它的后缀,并且不在它前面,那么费用增加n*n 2. 如果它的前面不存在一个是它的后缀,那么费用增加i 3. 如果前面存在一个是它的后缀,那么费用增加i-j(j是前面所有它的后缀中,最后的位置)数据范围n≤100000 字符串总长≤510000分析后缀比

2016-07-15 18:33:53 726

原创 [codeforces616F]Expensive Strings

题目大意给出n个字符串以及一个n个元素的c数组。 定义一个字符串s的价值为:∑i=1nc[i]∗p[s][i]∗|s|\sum_{i=1}^n c[i]*p[s][i]*|s| 其中p[s][i]为字符串s在第i个字符串中出现的次数。 求价值最大的字符串的价值。数据范围n≤100000 字符串总长≤500000 ci的绝对值不超过10710^7分析答案肯定是n个字符串中的某一个串的子串

2016-07-14 20:46:07 480

原创 【NOIP2016A组模拟7.13】亚瑟王之宫

DescriptionInputOutputData Constraint100%:4≤R,C≤20 N≤200 时限为5s分析先预处理出每个人到每个点的距离,用bfs即可。 然后枚举两个汇合点,对于一个方案,答案就是每个人到它的目的地的距离和。 当我们确定了两个汇合点后,把n/2个人分在一组,那么可以设f[i][j]表示前i个人有j个分到第一组,然后O(n2)O(n^2)转移,总时间复杂

2016-07-13 15:33:20 404

原创 [Tjoi2016&Heoi2016]字符串

Description佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CEO,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数,问你子串s[a..b]的所有子串和s[c..d]的最长公共前缀的长度的最大值是多少?佳媛姐姐并不擅长做这样的

2016-07-12 16:24:01 874

原创 [Tjoi2016&Heoi2016]树

Description在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个结点,可以打多次标记。)2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖先)你能帮帮他吗?Input输入第一行两个正整数N和Q分别表示节点个数

2016-07-11 15:59:07 855

原创 [Tjoi2016&Heoi2016]序列

Description佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他。玩具上有一个数列,数列中某些项的值可能会变化,但同一个时刻最多只有一个值发生变化。现在佳媛姐姐已经研究出了所有变化的可能性,她想请教你,能否选出一个子序列,使得在任意一种变化中,这个子序列都是不降的?请你告诉她这个子序列的最长长度即可 。注意:每种变化最多只有一个值发生变化。在样例输入1中,所有的变化是: 1

2016-07-11 15:45:58 670

原创 [TJOI&HEOI2016]排序

题目大意有一个n的排列,进行m次操作,每次操作是将一个区间升序或降序排序。 请你输出m次操作后第p个位置的值。数据范围n,m≤100000分析直接排序肯定不好做。 但是如果考虑二分答案,那么问题就变成判断最后第p个位置的值是否小于等于一个数了。 所以对于当前二分的答案mid,把a[i]≤mid的都赋值为1,a[i]>mid的赋为0。以升序排序为例,求出区间有多少个1,假设共有cnt个,那么把

2016-07-11 14:45:40 352

原创 [51nod1228]序列求和

题目大意设T(n) = n^k,S(n) = ∑ni=1T(i)\sum_{i=1}^n T(i)。给出n和k,求S(n)。 例如k = 2,n = 5,S(n) = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55。 由于结果很大,输出S(n) Mod 1000000007的结果即可。数据范围T≤5000 k≤2000 N≤101810^{18}分析n很大,所以复杂度不应该

2016-07-10 22:09:13 1142

原创 [CF398D]Instant Messanger

题目大意现在有一个社交网站,有q(q≤250000)个操作 login(u): 用户u上线 logout(u): 用户u下线 add_friend(u, v): 用户u,v加为好友(保证原本不是好友) del_friend(u, v): 用户u,v互相删除好友(保证原本u,v是好友) count_online_friends(u): 输出u有多少个好友在线 用户被编号为1..n(n≤50

2016-07-09 18:50:21 526

原创 [16.7.9训练]a

题目大意给你一个n个节点的树,初始时每个点的权值为0,并且每个点上有一个体重为a[i]的人。 现在有m个操作,每个操作有以下几种类型: 1. 给u,v的路径上所有点各放一个体重为value的人。 2. 给u,v的路径上所有点的权值都加上value 3. 询问u,v的路径上总重最大的人 4. 询问u,v的路径上总重最小的人 总重=体重+点的权值n≤100000 总重在int范围内

2016-07-09 14:32:18 337

原创 Stree

Description给出n个点,m条有权边,现对于每一条边,你需要回答出包含这条边的最小生成树的总边权值。Input第一行两个数n,m 接下来m行i,j,k,表示i与j间有一条权值为k的边Outputm行答案Sample Input5 7 1 2 3 1 3 1 1 4 5 2 3 2 2 5 3 3 4 2 4 5 4Sample Output9 8 11 8 8 8

2016-07-08 18:36:35 359

原创 String

Description有两种字符串S,T。长度分别为n,m。现在需要在S里面有序地选出k个子串,且在T中出现的顺序与这k个子串的顺序相同。问这k个子串最大的长度和Input第一行三个数n,m,k 第二行长度为n的S串 第三行长度为m的T串Output一个数表示答案Sample Input9 12 4 bbaaababb abbbabbaaabaSample Output7Data Const

2016-07-08 18:30:52 319

原创 2016.07.08noip提高组模拟总结

好像很久没有打过总结了呢。今天依旧在做noip模拟。我好像是对今天自信过头了,所以策略上犯了错误,于是成功爆零。。。首先看完题目,然后立刻开始想第一题(因为第一题与我以前出题时想出来的一个demo完全一样,只是后来没有想完正解,认为它较水就弃了)。想出来一个时间复杂度为O(nnlog(n)−−−−−−√)O(n\sqrt{nlog(n)})的分块做法。然后从9点左右开始打,结果一对拍就出错,接着开始

2016-07-08 18:21:19 482

原创 [Codeforces232D]Fence

题目大意给你一个长度为n的序列h和q个询问,每次询问一个区间[l,r],求有多少个区间[x,y]满足以下条件: 1. [l,r]与[x,y]交集为空 2. r-l+1等于y-x+1 3. 对于任意一个i(0≤i≤r-l),h[l+i]+h[x+i]==h[x]+h[l]n,q≤100000分析直接求两个对应数的和相同必然不好做,但是考虑到对于i(1≤i≤r-l),h[l+i-1]+h[x+i-

2016-07-08 08:02:00 642

原创 [51nod1766]

Descriptionn个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i<=b,c<=j<=d} (PS 建议使用读入优化)Input第一行一个数字 n n<=100000。 第二行到第n行每行三个数字描述路的情况, x,y,z (1<=x,y<=n,1<=z<=10000)表示x和

2016-07-07 16:10:11 390

原创 【TJOI2013】单词

Description小张最近在忙毕业设计,所以一直在读论文。一篇论文是由许多单词组成的。 但小张发现一个单词会在论文中出现很多次,他想知道每个单词分别在论文中出现了多少次。Input第一行一个整数N,表示有N个单词。接下来N行每行一个单词,每个单词都由小写字母(‘a’-‘z’)组成。(N<=200)Output输出N个整数,第i行的数表示第i个单词在文章中出现了多少次。Sample Input3

2016-07-04 11:47:59 577

原创 [51nod 1197] 字符串的数量 V2

Description用N个不同的字符(编号1 - N),组成一个字符串,有如下要求: (1) 对于编号为i的字符,如果2 * i > n,则该字符可以作为结尾字符。如果不作为结尾字符而是中间的字符,则该字符后面可以接任意字符。 (2) 对于编号为i的字符,如果2 * i <= n,则该字符不可以作为结尾字符。作为中间字符,那么后面接的字符编号一定要 >= 2 * i。 问有多少长度为M且符合

2016-07-03 21:16:02 729

空空如也

空空如也

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

TA关注的人

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