08 2017 档案

摘要:http://acm.uestc.edu.cn/#/problem/show/594 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=5e4+2; 5 con 阅读全文
posted @ 2017-08-29 19:41 shulin15 阅读(176) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3401 【题意】 知道之后n天的股票买卖价格(api,bpi),以及每天股票买卖数量上限(asi,bsi),问他最多能赚多少钱。开始时有无限本金,要求任两次交易需要间隔W天以上,即第i天交易,第i+w+1天才能再交 阅读全文
posted @ 2017-08-29 13:50 shulin15 阅读(162) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=3530 【题意】 给定一个长度为n的序列,问这个序列满足最大值和最小值的差在[m,k]的范围内的最长子区间是多长? 【思路】 对于序列中特定的位置j,我们固定右端j考察左端i,发现[i,j]内的最大值随i的增大而非严格递减 对于 阅读全文
posted @ 2017-08-28 21:03 shulin15 阅读(368) 评论(1) 推荐(1) 编辑
摘要:http://poj.org/problem?id=2823 【题意】 给定一个长度为n的序列,求长度为k的滑窗内的最大值和最小值 【思路】 裸的单调队列 注意用C++提交,不然会T,orz我用G++T了好长时间 【AC】 1 //#include<bits/stdc++.h> 2 #include 阅读全文
posted @ 2017-08-28 14:33 shulin15 阅读(198) 评论(0) 推荐(0) 编辑
摘要:【题意】 给定一个n*m的矩阵,求所有大小为k*k的正方形中(最大值-最小值)的最小值 【思路】 先横着算出每一行的长度为k的窗口内的最大值,变成一个n*(m-k+1)的矩阵mx 再竖着算出每一列的长度为k的窗口内的最大值,变成一个(n-k+1)*(m-k+1)的矩阵t1(在mx的基础上算) 问题到 阅读全文
posted @ 2017-08-28 14:03 shulin15 阅读(195) 评论(0) 推荐(0) 编辑
摘要:【题意】 维护一个单调递减的q数组,用id数组记录q数组的每个下标对应在原数组的位置,那么id数组一定有单调性(q数组中越靠后,原数组中也靠后),然后二分查找这个数 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef lon 阅读全文
posted @ 2017-08-28 12:46 shulin15 阅读(189) 评论(0) 推荐(0) 编辑
摘要:poj.org/problem?id=1236 【题意】 给定一个有向图,求: (1)至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 (2)至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 【思路】 (1)强连通分量缩点后形成一个有向无环图,只要选择入度为0的顶点,其他顶点 阅读全文
posted @ 2017-08-27 22:16 shulin15 阅读(218) 评论(0) 推荐(0) 编辑
摘要:【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 int n; 5 const int maxn=1e3+2; 6 const int maxm=1e6+2; 7 const int inf 阅读全文
posted @ 2017-08-27 17:59 shulin15 阅读(146) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4031 【题意】 有一个长为n的长城,进行q次操作,d为防护罩的冷却时间,Attack表示区间a-b的墙将在1秒后受到攻击, 询问表示计算第a块墙受到攻击的次数,被防护罩抵消的不算 【思路】 总的攻击次数-防护罩抵 阅读全文
posted @ 2017-08-26 22:15 shulin15 阅读(200) 评论(0) 推荐(0) 编辑
摘要:http://codevs.cn/problem/1082/ 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=2e5+2; 5 int n; 6 ll a[m 阅读全文
posted @ 2017-08-26 21:12 shulin15 阅读(331) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4267 【思路】 树状数组的区间修改:在区间[a, b]内更新+x就在a的位置+x. 然后在b+1的位置-x 树状数组的单点查询:求某点a的值就是求数组中1~a的和. (i-a)%k==0把区间分隔开了,不能直接套 阅读全文
posted @ 2017-08-26 17:29 shulin15 阅读(159) 评论(0) 推荐(0) 编辑
摘要:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1335 【题意】 给定n座桥的高度,给定m次洪水每次的涨水水位ai和退水水位bi 询问有多少座桥被淹的次数大于等于k 洪水最开始的水位为1 【思路】 每座桥被淹一次是这样的:开始时的水位小于桥的高 阅读全文
posted @ 2017-08-26 15:24 shulin15 阅读(162) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=4135 【题意】 询问[a,b]中与n互质的数有多少个 【思路】 考虑[1,m]中与n互质的数有多少个,答案就是query(b)-query(a-1) 正难则反,考虑[1,m]中与n不互质的数有多少个 求出n的所有素因子a1,a 阅读全文
posted @ 2017-08-25 20:52 shulin15 阅读(122) 评论(0) 推荐(0) 编辑
摘要:n是质数<=>n没有小于等于sqrt(n)的素因子 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=1e5+2; 5 ll n; 6 int ans[maxn]; 7 阅读全文
posted @ 2017-08-25 20:15 shulin15 阅读(257) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6178 【题意】 给定一棵有n个结点的树,现在有k个猴子分布在k个结点上,我们可以删去树上的一些边,使得k个猴子每个猴子都至少和其他一个猴子相连 问树上最少保留多少条边 【思路】 每个猴子要至少和一个猴子相连,考虑 阅读全文
posted @ 2017-08-24 20:45 shulin15 阅读(199) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5692 【思路】 每更新一个点,子树的所有结点都要更新,所以是区间更新 每查询一个点,子树的所有结点都要查询,所以是区间查询最值 线段树上结点的值是每个点到根这条链的权值和 【AC】 1 #pragma comme 阅读全文
posted @ 2017-08-24 11:02 shulin15 阅读(182) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3887 【题意】 给定一棵树,给定这棵树的根 对于每个结点,统计子树中编号比他小的结点个数 编号从小到大一次输出 【思路】 从小到大处理每个结点,即统计当前结点的结果后,把当前结点插入到树状数组中 【AC】 1 # 阅读全文
posted @ 2017-08-23 20:59 shulin15 阅读(187) 评论(0) 推荐(0) 编辑
摘要:http://acm.bnu.edu.cn/v3/problem_show.php?pid=52733 【题意】 给定一棵树,这棵树每个点都有一个点权,标号从0开始,0是根结点 修改操作: SEED 1 13 把结点1的点权乘上13 查询操作: RAND 1 查询结点1为根的子树所有结点权的总乘积, 阅读全文
posted @ 2017-08-23 20:18 shulin15 阅读(211) 评论(0) 推荐(0) 编辑
摘要:poj.org/problem?id=3321 【题意】 给一棵n个节点的树,每个节点开始有一个苹果,m次操作 1.将某个结点的苹果数异或 1 2.查询一棵子树内的苹果数 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #i 阅读全文
posted @ 2017-08-23 15:05 shulin15 阅读(199) 评论(0) 推荐(0) 编辑
摘要:1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 5 const int maxn=50005; 6 struct Seg 7 { 8 int l,r,mi,ma; 9 }tree[maxn*4]; 10 int va 阅读全文
posted @ 2017-08-22 19:11 shulin15 阅读(133) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=1698 【AC】 1 #include<cstdio> 2 const int maxn=100005; 3 #define lson (i<<1) 4 #define rson (i<<1|1) 5 struct Seg 6 阅读全文
posted @ 2017-08-22 18:58 shulin15 阅读(159) 评论(0) 推荐(0) 编辑
摘要:acm.bnu.edu.cn/v3/contest_show.php?cid=9208#problem/G 【题意】 给定一个无向图,要求把这个无向图的点划分到不同的集合里,使得每个集合的点之间两两没有边相连 求最少划分到多少个集合 【思路】 相当于给一个图染色,相邻点染不同色(在不同集合),最少用 阅读全文
posted @ 2017-08-22 11:46 shulin15 阅读(248) 评论(0) 推荐(0) 编辑
摘要:http://acm.bnu.edu.cn/v3/contest_show.php?cid=9208#problem/J 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll N,K; 5 阅读全文
posted @ 2017-08-21 23:45 shulin15 阅读(319) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6156 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const ll mod=1e9+7; 5 i 阅读全文
posted @ 2017-08-20 22:07 shulin15 阅读(165) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=6153 【题意】 给定字符串A和B,求B的所有后缀在A中出现次数与其长度的乘积之和 A和B的长度最大为1e6 方法一:扩展kmp 【思路】 把A和B同时反转,相当于求B的所有前缀在A中出现次数与其长度的乘积之和 换个角度,相当于 阅读全文
posted @ 2017-08-20 17:41 shulin15 阅读(417) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4333 【题意】 给定一个数字<=10^100000,每次将该数的第一位放到放到最后一位,求所有组成的不同的数比原数小的个数,相等的个数,大的个数 【思路】 这个数很大,用字符串处理 比较两个字符串的大小,一位一位 阅读全文
posted @ 2017-08-20 13:37 shulin15 阅读(266) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2752 【题意】 给定一个字符串,求这个字符串的所有公共前后缀的长度,按从小到达输出 【思路】 利用kmp的next数组,最后加上这个字符串本身 【AC】 1 #include<iostream> 2 #include<cstring> 3 #i 阅读全文
posted @ 2017-08-20 08:52 shulin15 阅读(238) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2406 【题意】 给定字符串s,s=a^n,a是s的子串,求n最大是多少 【思路】 kmp中的next数组求最小循环节的应用 例如 ababab next[6] = 4; 即 ababab ababab 1~4位 与2~6位是相同的 那么前两位 阅读全文
posted @ 2017-08-20 08:27 shulin15 阅读(161) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2089 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=1e6+2; 5 阅读全文
posted @ 2017-08-18 22:29 shulin15 阅读(190) 评论(0) 推荐(0) 编辑
摘要:https://www.bnuoj.com/v3/problem_show.php?pid=52781 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=5e5 阅读全文
posted @ 2017-08-18 21:48 shulin15 阅读(244) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=6127 【题意】 给定平面直角坐标系中的n个点,这n个点每个点都有一个点权 这n个点两两可以连乘一条线段,定义每条线段的权值为线段两端点点权的乘积 现在要过原点作一条直线,要求这条直线不经过任意一个给定的点 在所有n个点两两连成 阅读全文
posted @ 2017-08-16 20:20 shulin15 阅读(221) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6129 【题意】 对于一个长度为n的序列a,我们可以计算b[i]=a1^a2^......^ai,这样得到序列b 重复这样的操作m次,每次都是从上次求出的序列a得到一个新序列b 给定初始的序列,求重复m次操作后得到 阅读全文
posted @ 2017-08-16 19:00 shulin15 阅读(238) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=3037 【题意】 m个松果,n棵树 求把最多m个松果分配到最多n棵树的方案数 方案数有可能很大,模素数p 1 <= n, m <= 1000000000, 1 < p < 100000 【思路】 答案为C(n+m,m)%p 对于 阅读全文
posted @ 2017-08-16 14:54 shulin15 阅读(166) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6121 【题意】 询问n个结点的完全k叉树,所有子树结点个数的异或和是多少 【思路】 一棵完全K叉树,对于树的每一层,我们可以分为三种结点: 【AC】 1 #include<bits/stdc++.h> 2 usi 阅读全文
posted @ 2017-08-16 13:47 shulin15 阅读(178) 评论(0) 推荐(0) 编辑
摘要:https://www.bnuoj.com/v3/external/gym/101241.pdf 【题意】 给定n个字符串,大小写敏感 定义一个操作:选择任意m个串首尾相连组成一个新串 问是否存在一个这样的串s,s可以由不同的串首尾相连得到 最多100个字符串,所有字符串的总长度不超过5000 【样 阅读全文
posted @ 2017-08-15 21:54 shulin15 阅读(246) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/contest/839/problem/C 【AC】 【注意】 不能先把所有的分枝数乘起来得到cnt,最后到叶节点再计算概率1/cnt,这样cnt会爆的,一开始就是因为这个WA了 阅读全文
posted @ 2017-08-13 22:36 shulin15 阅读(159) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/contest/839/problem/B 【题意】 给定n组人,告诉每组人的人数,这些人要在飞机上坐座位 飞机上座位的分布看图可以知道,12 3456 78 要求任意两个相邻座位不能是不同组的人 问在满足约束的情况下能不能保证所有的人有座位 【思路】 首 阅读全文
posted @ 2017-08-13 22:30 shulin15 阅读(168) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6114 【思路】 就是求C(m,n) 【板】 阅读全文
posted @ 2017-08-13 18:52 shulin15 阅读(172) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6119 【思路】 首先通过处理交叉的可以处理成不交叉的 然后二分查找答案 如何判断一个长度是否可行? 双指针O(n)扫一次就可以,要处理区间和问题,所以先求前缀和 时间复杂度O(nlogn) 【AC】 1 #inc 阅读全文
posted @ 2017-08-13 18:50 shulin15 阅读(212) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6108 【题意】 给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。 【思路】 当时记起了离散数学课上学过为啥10进制下是3和9(因为10,3,9关于1同余),所 阅读全文
posted @ 2017-08-13 18:46 shulin15 阅读(221) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=6112 【思路】 公式计算即可,注意特判2月29号 Zeller公式里,计算出的week不能直接模7,要保证week是正数 【AC】 1 #include<iostream> 2 #include<cstdio> 3 #incl 阅读全文
posted @ 2017-08-13 18:42 shulin15 阅读(210) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6113 【题意】 度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都只由0和1组成。 现在给你一个n*m的图像,你需要分辨他究竟是0,还是1,或者两者均不是。 图像0的定义:存在1字符且1字符只能是由 阅读全文
posted @ 2017-08-13 18:17 shulin15 阅读(202) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1421 【题意】 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2*k<=n<2000 【思路】 首先排序,一定选择相邻的两项作为一对 dp[i][j]表示选择到ai,组成 阅读全文
posted @ 2017-08-09 12:43 shulin15 阅读(182) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2955 【题意】 有一个强盗要去几个银行偷盗,他既想多抢点钱,又想尽量不被抓到。已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率。求他最多能偷到多少钱? 【思路】 01背包:每个物品代价是每个银行钱 阅读全文
posted @ 2017-08-09 12:07 shulin15 阅读(196) 评论(0) 推荐(0) 编辑
摘要:【题目描述】 Description 神犇最近闲来无事,于是就思考哲学,研究数字之美。在神犇看来,如果一个数的各位能够被分成两个集合,而且这两个集合里的数的和相等,那么这个数就是优美的(具体原因就只有神犇才知道了)。现在神犇在思考另一个问题,在区间[a,b]中有多少个数是优美的?这个问题对于神犇来说 阅读全文
posted @ 2017-08-06 21:00 shulin15 阅读(375) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2844 【题意】 给定n种价值为Ci,个数为Wi的硬币,问在1~V中的这些数中哪些数能由这些硬币组成? 【思路】 多重背包,二进制优化,时间复杂度为O(V*log∑ni) 【Accepted】 1 #include 阅读全文
posted @ 2017-08-06 20:41 shulin15 阅读(294) 评论(0) 推荐(0) 编辑
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<string> 6 #include<algorithm> 7 #include<queue> 8 #include<ve 阅读全文
posted @ 2017-08-06 19:05 shulin15 阅读(302) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3986 【题意】 给定一个有重边的无向图,T=20,n<=1000,m<=5000 删去一条边,使得1~n的最短路最长 求最短路最长是多少 【思路】 一定是删最短路上的边 可以先跑一个Dijkstra,求出最短路, 阅读全文
posted @ 2017-08-06 10:39 shulin15 阅读(181) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6069 【题意】 给定l,r,k,求 d(n)是n的因子个数 【思路】 【Accepted】 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 阅读全文
posted @ 2017-08-04 22:52 shulin15 阅读(129) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=6060 【题意】 给定一棵以1为根的树,把这颗树除1以外的结点划分为k个集合(可以有空集),把1加入划分后的集合 每个集合的结点形成一棵最小生成树 所有最小生成树的权值之和最大化 【思路】 最小生成树,每个点u到root 1都要 阅读全文
posted @ 2017-08-02 15:42 shulin15 阅读(217) 评论(0) 推荐(0) 编辑
摘要:acm.hdu.edu.cn/showproblem.php?pid=6058 【题意】 给定一个排列,计算 【思路】 计算排列A中每个数的贡献,即对于每个ai,计算有ni个区间满足ai是区间中的第k大,那么ai对答案的贡献就是ai*ni 以ai为起点,统计ai右边离ai最近的,比ai大的k个数的位 阅读全文
posted @ 2017-08-02 14:33 shulin15 阅读(273) 评论(0) 推荐(0) 编辑