自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jamie and Tree( Codeforces 916E)

题意:给出一个有n个点以及n-1条边的树,进行3个操作: 1. 将x变成整个树的根 2. 将以x,y相对于根的最近公共祖先的为根的那棵子树的所有根节点加上z. 3. 查询以x为根的子树的所有节点的和算法:LCA,DFS序,线段树区间维护解题思路: 首先考虑不对根进行修改,通过对根与询问节点的相对位置关系分析,通过求LCA实现各个操作。由于每一次操作修改的点不确定,

2018-01-24 10:49:38 460

原创 Imbalance Value of a Tree (CodeForces 915F)

题意: 给出一个有n个点的带权值的树,求所有点两两之间的所有路径所经过的最大值与最小值的差。算法: 并查集解题思路: 没怎么做过这种类型的题,首先考虑每一个点对答案做出的贡献,可以求出所有最大值的和以及所有最小值的和。这里介绍一下怎么求所有最大值的和,首先我们有一个完整的树,首先考虑权值最大的那个点,肯定是和他相连的并且两两相互独立的几坨点的个数两两相乘后乘以这个点权(这里有点求解的

2018-01-20 10:33:43 491

原创 Physical Education Lessons(【CodeForces】915 E)

【题意】n个点q个询问,对于每一个询问,输入l,r,k,如果k是1,代表[l, r]全变成0, k是2就将[l, r]全变成1。【题解】一眼看去,肯定是维护区间的线段树,然后连范围都没看到。写完以后发现不对,n是1e9,然后想到离散化处理以后用线段树。解法:将点i与点i+1之间的区间大小赋予点i,即点i的权值为点i与点i+1之间的区间大小。然后就可以随便线段树乱写了。注意数据范围,这里好像超了

2018-01-19 10:27:36 448 1

原创 Almost Acyclic Graph(【CodeForces】915 D)

【题意】n个点m条边,判断是否可以通过删除一条边使整个图不存在环。【题解】看到题目的第一反应是Tarjan求强连通,求完强连通后,假如存在两个及以上的强连通分量中存在两个点以上,肯定是不行的。因为一个强连通分量中如果点数大于1肯定存在环,存在多个环一定是不能通过删除一条边解决的。然后对于只有一个强连通分量里面有一大堆的情况分析,可能这一个分量中存在的环不能通过删除一条边解决也可能可以,我当时的

2018-01-19 10:18:01 352

原创 sdut 第二场趣味循环赛A题题解

解题思路:区间[L,R][L ,R ]的和为K的倍数可以推出 [1,2...L−1][1, 2...L-1]%K==[1,2....R][1, 2....R]%K。于是可以预处理出所有的前缀和对K取模的得到的余数,对每一个余数存在的个数n取C2nC_n^2将和加起来即可,注意答案可能超出int。 代码:#include <stdio.h>#include <string.h>#include

2017-12-26 19:31:45 240

原创 sdut 趣味循环赛第一场H题题解

解题思路:题目中所说n的范围为231−12^{31}-1所以一个一个的枚举肯定是不行的,于是我们想到一个略作优化的方案,题目中给出循环的规律(即1, 1-2, 1-3, 1-4, 1-5…)可以简单的算出每一个循环中有多少个数,那么枚举每一个循环,直至加和大于等于n的那个循环时停止,然后在那个循环里寻找答案即可。代码:#include <iostream>#include <math.h>con

2017-12-26 19:23:07 255

原创 第九届山东理工大学ACM网络编程擂台赛 F题题解

http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2326/pid/4072解题思路: 题目要求最短时间完成所有的考验,如果直接去求最短时间应该是不太现实的,因为这种思路既不符合贪心,又不能dp。仔细看不难发现,如果假设一个天数x,是可以通过从后往前贪心的方法去验证x天内是否可以完成所

2017-11-20 18:27:54 806

原创 2017CCPC哈尔滨理工大学站赛后总结

没什么好说的,难受。

2017-10-24 18:38:11 630 1

原创 求乘法逆元

求n关于mod的逆元#include <stdio.h>#define LL long longvoid ext_gcd(int a,int b, int &x, int &y){ if(!b)x=1, y=0; else { ext_gcd(b, a%b, y, x); y-=(a/b)*x; }}int main(){ int

2017-10-17 20:26:44 271

原创 Repeats (spoj 687)

题意:给你一串字符串,求重复次数最多的连续重复子串。例如u=babbabaabaabaababu = babbabaabaabaabab, 最多的为abaaba, 在u的子串abaabaabaabaabaabaabaaba中重复了4次。题解:参考论文上的解法,先枚举长度ll,然后求长度为ll的子串至少连续出现2次的情况。如果在原字符串中连续出现2次,那么这个由长为ll的子串重复两次所形成的串肯定包括

2017-10-09 20:58:33 312

原创 Mysterious Bacteria ( lightOJ 1220)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1220 题目大意:输入T组数据,每组一个整数nn(可能为负数),求满足ap=na^p=n的最大的p 思路:\quad当n>0, 对n进行质因数分解,然后最小的p就是所有质因子出现次数的最大公因数,即n=pe11⋅pe22⋅pe33...pemmans=gcd(e1,e2,e3...em

2017-09-27 20:59:40 189

原创 Harmonic Number(暴力做法)

题意:Fn=11+12+13+14...1n(1<n<108)F_n=\frac{1}{1}+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}...\frac{1}{n} \qquad(1<n<10^{8}) \quad即Fn=∑ni=11iF_n=\sum_{i=1}^n\frac{1}{i}\qquad注意精确到10−810^{-8}数据范围:TT组(1<T<1

2017-09-27 19:47:40 313 1

原创 读入挂

namespace FastIO{ #define BUF_SIZE 100000 bool IOerror=0; inline char nc(){ static char buf[BUF_SIZE], *p1=buf+BUF_SIZE, *pend=buf+BUF_SIZE; if(p1==pend){ p1=buf

2017-09-20 10:01:03 340 1

原创 HDU 2665 (主席树)

题意:查询区间第k大是哪个数。解题思路:首先对所有输入数据进行离散化, 然后建立线段树, sum表示该节点出现了多少次(左右儿子节点共出现了多少次),对每一个输入都建立一棵线段树,于是当查询(l,r)(l, r)的第k大值时, 只需对第r个输入时建立的线段树与第l-1个输入时建立的线段树每一个节点值相减后所形成的树进行单点查询即可(查询k对应的位置),但是如果真正的对每一个输入建立一棵线段树毫无疑问

2017-08-24 10:46:09 232

原创 Killer Names (HDU6143 17多校赛)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143 题意:大概意思是输入n, m表示一共有m种字符,用这m种字符组成两段长度为n的字符串,字符种类可以不用完,但是对于这两段长为n的字符串其中包含的字符应不同,不同顺序算不同种(例如第一个字符串为aabb, 第二个串就不应该有a,b)。 解题思路: 先只考虑第一个字符串, 假设长度为n的字符串种包

2017-08-18 09:33:19 217

原创 HDU - 3974 Assign the task(线段树或暴力)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=3974题意:给出一个公司的组成,当有新任务给某个人的时候, 他的下属也会帮他做, 当有新的任务下达时, 他们会停下原来的工作来做新的工作。输入:T组数据, 每组先输入n, 接下来n-1行 每行输入 u, v 代表v是u的上司, 下一行输入m,接下来m行代表操作, 其中 T x y代表给x新下达了y的任务 ,

2017-08-15 11:35:06 201

原创 Table CodeForces - 232B(144 div1 B) (dp+快速幂)

链接:http://codeforces.com/problemset/problem/232/B题意:给出一个n*m的大矩阵(m>=n),往矩阵里放点,求满足对于每一个n*n的小矩阵都有k个点的放法的数量。解题思路: 对于一个n*n的矩阵S1 A为其左边一列中的点的个数, B为S2右边一列中的点的个数, 于是有A+T=B+TA+T=B+T ,故当第一个n⋅nn\cdot n 矩阵中第i列的点的

2017-08-15 08:13:03 292

原创 Cipher CodeForces - 156C(dp)

链接:http://codeforces.com/problemset/problem/156/C题意:(太长,没仔细读,其实也看不懂)大概就是t组字符串, 对于每一组,在总的值不变的情况下问有多少中组成形式(值:a=1, b=2, c=3…., 并且范围在a-z)解题思路: 对于长度为i 总值为j的字符串,它的组成形式数量等于长度为 i-1, 值为j-1至j-26的加和(j-x<0的情况

2017-08-14 11:40:44 226

原创 Cash Machine POJ - 1276 (多重背包)

链接:http://poj.org/problem?id=1276 题意:给出一个n 代表最多拿的值为n, m种钱币, 每种有 x个, 值为y,问在不超过n的情况下最多能拿多少钱。解题思路:也算是多重背包的模板题了,做法是将多重背包化成0 1背包, 将每种钱币分别分成 1个 2个 4个…..当不够分的时候就将剩下的也当作一组, 这样每一组都对应一个不同的值 y*1, y*2, y*4….然后直接0

2017-08-14 11:32:02 321

原创 Tunnel Warfare HDU - 1540(线段树区间合并)

链接;http://acm.hdu.edu.cn/showproblem.php?pid=1540 题意:对于区间[1, n]进行m个操作, 其中 :D x代表x节点被摧毁Q x代表查询从x节点开始向左右共有多少个未被摧毁的连续节点R 代表修复上一个被摧毁的节点解题思路:用线段树表示区间连续长度, 其实和单点更新差不多, 用类似分治的思想解决(分治解决最大连续区间和),详情看代码#incl

2017-08-14 11:17:53 228

原创 Can you answer these queries? HDU - 4027(线段树)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027题意:给你一段区间n, 以及[1, n]中的每一个数,两个操作:0, x, y 对于区间[x, y]对每一个数字去开方(向下取整)1, x, y查询区间[x, y]的和解题思路: 考虑到对于一个long long 类型的整数开方不会用多少次就会变成1, 而如果变成1以后还要去开方就会浪费

2017-08-14 11:07:18 174

原创 Balanced Lineup POJ - 3264 (线段树单点更新)

链接:http://poj.org/problem?id=3264题意:n个牛m个操作,问你第[i, j]之间最高的牛和最低的牛的高度差是多少解题思路: 保存最大值最小值就可以了, 模板稍微改改就可以代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <math.h>#de

2017-08-14 10:57:47 266

原创 Count the Colors ZOJ - 1610 (线段树)

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 题意:将一段[1, n]的区间,对于区间中的某些子区间染成不同的颜色,问染完色以后有多少不同颜色的区间, 例如染完以后区间[1, 4]为1,[5, 6]为2, 故为两段。输入 :n, n个操作, 每一个操作, x, y, z 代表将[x, y]染成z颜色解题思路

2017-08-14 10:53:10 285

原创 Just a Hook HDU - 1698 (线段树模板题)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 题意:对于一个区间[1, n], 刚开始的时候每一个点的值都是1,一种操作:(1):将区间[x, y]内的值改为2 或者3。 在输入结束后输出当前[1, n]值的和输入 T(组)接下来T组数据,每组首先输入区间长度n,然后输入m,代表m个操作,每一个操作 x, y, z, z为2或者3也是一道模板

2017-08-14 10:36:44 177

原创 Mayor's posters POJ - 2528 (线段树+离散化)

链接:http://poj.org/problem?id=2528 题意:在一个长度不超过10000000的区间内贴海报,因为贴的过程中会有覆盖的问题, 假如第一次贴[1, 4], 第二次贴[2, 6],就会覆盖住[2, 4]部分,问贴完所有海报后能看到多少张海报。解题思路:因为数据量太大,故要对所给出的数据先进行离散化比如(1, 2, 5, 6, 8, 10),离散化以后为(1, 2, 3, 4

2017-08-14 10:20:53 150

原创 线段树区间更新模板 POJ - 3468

题目链接:http://poj.org/problem?id=3468两种操作:对区间[a ,b]中的每一个数字增加c查询区间[a, b]中的数字和顺便提一下lazy的思想,因为对于区间更新来说,一个区间中的每一个点增加或者减少某一个值,如果每一次都实现完全更新会浪费许多时间,经过观察不难发现,假如有一个[1, 7]的区间, 第一次对[4, 7]增加10,第二次对[4, 5]减少5,我们可以在

2017-08-14 09:53:53 183

原创 线段树单点更新模板 HDU-1166

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 一共有三种操作:在第i个节点增加j个人在第i个节点减少j个人查询i, j之间的总人数一道线段树单点更新的模板题代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define l

2017-08-14 09:30:49 172

原创 acm-sdut-深度优先搜索练习之神奇的矩环

山东理工大学oj题解

2017-03-29 23:53:33 541

原创 acm-sdut-团战可以输、提莫必须死

山东理工大学oj题解

2017-03-29 23:52:33 751

原创 acm-sdut-汤圆の拯救计划

山东理工大学oj题解

2017-03-29 23:51:04 744

原创 acm-sdut-图的深度遍历

山东理工大学oj题解

2017-03-29 23:49:47 495

转载 数据结构实验之查找二:平衡二叉树

大部分摘自,略有不同http://www.cnblogs.com/You0/p/4459719.html Problem Description根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。 Input输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。 Output输出平衡二叉树的

2017-02-08 17:12:47 211

原创 数据结构实验之二叉树二:遍历二叉树

Problem Description已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。 Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。 Output每组输入数据对应输出2行: 第1行输出中序遍历序列; 第2行输出后序遍历序列。Example Inputabc,,de,g,

2017-02-08 17:09:20 447

原创 数据结构实验之数组二:稀疏矩阵

Problem Description对于一个n*n的稀疏矩阵M(1 <= n <= 1000),采用三元组顺序表存储表示,查找从键盘输入的某个非零数据是否在稀疏矩阵中,如果存在则输出OK,不存在则输出ERROR。稀疏矩阵示例图如下: Input 连续输入多组数据,每组数据的第一行是三个整数mu, nu, tu(tu<=50),分别表示稀疏矩阵的行数、列数和矩阵中非零元素的个数,数据之间用空格间

2017-02-08 16:50:58 338

原创 Period

Problem Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. T

2017-02-08 16:46:30 205

原创 Power Strings

Problem Description Given two strings a and b we define a*b to be their concatenation. For example, if a = “abc” and b = “def” then a*b = “abcdef”. If we think of concatenation as multiplication, expo

2017-02-08 16:44:33 240

原创 字符串扩展

Problem DescriptionTom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符’-‘来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今

2017-02-08 16:42:49 375

原创 学密码学一定得学程序

Problem Description曾经,ZYJ同学非常喜欢密码学。有一天,他发现了一个很长很长的字符串S1。他很好奇那代表着什么,于是神奇的WL给了他另一个字符串S2。但是很不幸的是,WL忘记跟他说是什么意思了。这个时候,ZYJ不得不求助与伟大的ZP。ZP笑了笑说,这个很神奇的,WL的意思是只要你找到她给你的字符串在那个神奇的字符串的位置,你就会有神奇的发现。ZYJ恍然大悟,原来如此,但是悲剧来

2017-02-08 16:40:39 241

原创 串结构练习——字符串连接

Problem Description 给定两个字符串string1和string2,将字符串string2连接在string1的后面,并将连接后的字符串输出。 连接后字符串长度不超过110。 Input 输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2。Output 对于每组输入数据,对应输出连接后的字符串,每组输出占一行。Example

2017-02-08 16:37:08 370

原创 数据结构实验之串三:KMP应用

Problem Description有n个小朋友,每个小朋友手里有一些糖块,现在这些小朋友排成一排,编号是由1到n。现在给出m个数,能不能唯一的确定一对值l和r(l <= r),使得这m个数刚好是第l个小朋友到第r个小朋友手里的糖块数? Input首先输入一个整数n,代表有n个小朋友。下一行输入n个数,分别代表每个小朋友手里糖的数量。之后再输入一个整数m,代表下面有m个数。下一行输入这m个数。

2017-02-08 16:34:46 157

空空如也

空空如也

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

TA关注的人

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