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
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3401 【题意】 知道之后n天的股票买卖价格(api,bpi),以及每天股票买卖数量上限(asi,bsi),问他最多能赚多少钱。开始时有无限本金,要求任两次交易需要间隔W天以上,即第i天交易,第i+w+1天才能再交
阅读全文
摘要:acm.hdu.edu.cn/showproblem.php?pid=3530 【题意】 给定一个长度为n的序列,问这个序列满足最大值和最小值的差在[m,k]的范围内的最长子区间是多长? 【思路】 对于序列中特定的位置j,我们固定右端j考察左端i,发现[i,j]内的最大值随i的增大而非严格递减 对于
阅读全文
摘要:http://poj.org/problem?id=2823 【题意】 给定一个长度为n的序列,求长度为k的滑窗内的最大值和最小值 【思路】 裸的单调队列 注意用C++提交,不然会T,orz我用G++T了好长时间 【AC】 1 //#include<bits/stdc++.h> 2 #include
阅读全文
摘要:【题意】 给定一个n*m的矩阵,求所有大小为k*k的正方形中(最大值-最小值)的最小值 【思路】 先横着算出每一行的长度为k的窗口内的最大值,变成一个n*(m-k+1)的矩阵mx 再竖着算出每一列的长度为k的窗口内的最大值,变成一个(n-k+1)*(m-k+1)的矩阵t1(在mx的基础上算) 问题到
阅读全文
摘要:【题意】 维护一个单调递减的q数组,用id数组记录q数组的每个下标对应在原数组的位置,那么id数组一定有单调性(q数组中越靠后,原数组中也靠后),然后二分查找这个数 【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef lon
阅读全文
摘要:poj.org/problem?id=1236 【题意】 给定一个有向图,求: (1)至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 (2)至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 【思路】 (1)强连通分量缩点后形成一个有向无环图,只要选择入度为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
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4031 【题意】 有一个长为n的长城,进行q次操作,d为防护罩的冷却时间,Attack表示区间a-b的墙将在1秒后受到攻击, 询问表示计算第a块墙受到攻击的次数,被防护罩抵消的不算 【思路】 总的攻击次数-防护罩抵
阅读全文
摘要: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
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4267 【思路】 树状数组的区间修改:在区间[a, b]内更新+x就在a的位置+x. 然后在b+1的位置-x 树状数组的单点查询:求某点a的值就是求数组中1~a的和. (i-a)%k==0把区间分隔开了,不能直接套
阅读全文
摘要:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1335 【题意】 给定n座桥的高度,给定m次洪水每次的涨水水位ai和退水水位bi 询问有多少座桥被淹的次数大于等于k 洪水最开始的水位为1 【思路】 每座桥被淹一次是这样的:开始时的水位小于桥的高
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6178 【题意】 给定一棵有n个结点的树,现在有k个猴子分布在k个结点上,我们可以删去树上的一些边,使得k个猴子每个猴子都至少和其他一个猴子相连 问树上最少保留多少条边 【思路】 每个猴子要至少和一个猴子相连,考虑
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5692 【思路】 每更新一个点,子树的所有结点都要更新,所以是区间更新 每查询一个点,子树的所有结点都要查询,所以是区间查询最值 线段树上结点的值是每个点到根这条链的权值和 【AC】 1 #pragma comme
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3887 【题意】 给定一棵树,给定这棵树的根 对于每个结点,统计子树中编号比他小的结点个数 编号从小到大一次输出 【思路】 从小到大处理每个结点,即统计当前结点的结果后,把当前结点插入到树状数组中 【AC】 1 #
阅读全文
摘要:http://acm.bnu.edu.cn/v3/problem_show.php?pid=52733 【题意】 给定一棵树,这棵树每个点都有一个点权,标号从0开始,0是根结点 修改操作: SEED 1 13 把结点1的点权乘上13 查询操作: RAND 1 查询结点1为根的子树所有结点权的总乘积,
阅读全文
摘要:poj.org/problem?id=3321 【题意】 给一棵n个节点的树,每个节点开始有一个苹果,m次操作 1.将某个结点的苹果数异或 1 2.查询一棵子树内的苹果数 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #i
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:acm.bnu.edu.cn/v3/contest_show.php?cid=9208#problem/G 【题意】 给定一个无向图,要求把这个无向图的点划分到不同的集合里,使得每个集合的点之间两两没有边相连 求最少划分到多少个集合 【思路】 相当于给一个图染色,相邻点染不同色(在不同集合),最少用
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:acm.hdu.edu.cn/showproblem.php?pid=6153 【题意】 给定字符串A和B,求B的所有后缀在A中出现次数与其长度的乘积之和 A和B的长度最大为1e6 方法一:扩展kmp 【思路】 把A和B同时反转,相当于求B的所有前缀在A中出现次数与其长度的乘积之和 换个角度,相当于
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4333 【题意】 给定一个数字<=10^100000,每次将该数的第一位放到放到最后一位,求所有组成的不同的数比原数小的个数,相等的个数,大的个数 【思路】 这个数很大,用字符串处理 比较两个字符串的大小,一位一位
阅读全文
摘要:http://poj.org/problem?id=2752 【题意】 给定一个字符串,求这个字符串的所有公共前后缀的长度,按从小到达输出 【思路】 利用kmp的next数组,最后加上这个字符串本身 【AC】 1 #include<iostream> 2 #include<cstring> 3 #i
阅读全文
摘要: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位是相同的 那么前两位
阅读全文
摘要: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
阅读全文
摘要: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
阅读全文
摘要:acm.hdu.edu.cn/showproblem.php?pid=6127 【题意】 给定平面直角坐标系中的n个点,这n个点每个点都有一个点权 这n个点两两可以连乘一条线段,定义每条线段的权值为线段两端点点权的乘积 现在要过原点作一条直线,要求这条直线不经过任意一个给定的点 在所有n个点两两连成
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6129 【题意】 对于一个长度为n的序列a,我们可以计算b[i]=a1^a2^......^ai,这样得到序列b 重复这样的操作m次,每次都是从上次求出的序列a得到一个新序列b 给定初始的序列,求重复m次操作后得到
阅读全文
摘要: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 对于
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6121 【题意】 询问n个结点的完全k叉树,所有子树结点个数的异或和是多少 【思路】 一棵完全K叉树,对于树的每一层,我们可以分为三种结点: 【AC】 1 #include<bits/stdc++.h> 2 usi
阅读全文
摘要:https://www.bnuoj.com/v3/external/gym/101241.pdf 【题意】 给定n个字符串,大小写敏感 定义一个操作:选择任意m个串首尾相连组成一个新串 问是否存在一个这样的串s,s可以由不同的串首尾相连得到 最多100个字符串,所有字符串的总长度不超过5000 【样
阅读全文
摘要:http://codeforces.com/contest/839/problem/C 【AC】 【注意】 不能先把所有的分枝数乘起来得到cnt,最后到叶节点再计算概率1/cnt,这样cnt会爆的,一开始就是因为这个WA了
阅读全文
摘要:http://codeforces.com/contest/839/problem/B 【题意】 给定n组人,告诉每组人的人数,这些人要在飞机上坐座位 飞机上座位的分布看图可以知道,12 3456 78 要求任意两个相邻座位不能是不同组的人 问在满足约束的情况下能不能保证所有的人有座位 【思路】 首
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6114 【思路】 就是求C(m,n) 【板】
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6119 【思路】 首先通过处理交叉的可以处理成不交叉的 然后二分查找答案 如何判断一个长度是否可行? 双指针O(n)扫一次就可以,要处理区间和问题,所以先求前缀和 时间复杂度O(nlogn) 【AC】 1 #inc
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6108 【题意】 给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。 【思路】 当时记起了离散数学课上学过为啥10进制下是3和9(因为10,3,9关于1同余),所
阅读全文
摘要:acm.hdu.edu.cn/showproblem.php?pid=6112 【思路】 公式计算即可,注意特判2月29号 Zeller公式里,计算出的week不能直接模7,要保证week是正数 【AC】 1 #include<iostream> 2 #include<cstdio> 3 #incl
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6113 【题意】 度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都只由0和1组成。 现在给你一个n*m的图像,你需要分辨他究竟是0,还是1,或者两者均不是。 图像0的定义:存在1字符且1字符只能是由
阅读全文
摘要: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,组成
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2955 【题意】 有一个强盗要去几个银行偷盗,他既想多抢点钱,又想尽量不被抓到。已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率。求他最多能偷到多少钱? 【思路】 01背包:每个物品代价是每个银行钱
阅读全文
摘要:【题目描述】 Description 神犇最近闲来无事,于是就思考哲学,研究数字之美。在神犇看来,如果一个数的各位能够被分成两个集合,而且这两个集合里的数的和相等,那么这个数就是优美的(具体原因就只有神犇才知道了)。现在神犇在思考另一个问题,在区间[a,b]中有多少个数是优美的?这个问题对于神犇来说
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2844 【题意】 给定n种价值为Ci,个数为Wi的硬币,问在1~V中的这些数中哪些数能由这些硬币组成? 【思路】 多重背包,二进制优化,时间复杂度为O(V*log∑ni) 【Accepted】 1 #include
阅读全文
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<string> 6 #include<algorithm> 7 #include<queue> 8 #include<ve
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3986 【题意】 给定一个有重边的无向图,T=20,n<=1000,m<=5000 删去一条边,使得1~n的最短路最长 求最短路最长是多少 【思路】 一定是删最短路上的边 可以先跑一个Dijkstra,求出最短路,
阅读全文
摘要: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>
阅读全文
摘要:acm.hdu.edu.cn/showproblem.php?pid=6060 【题意】 给定一棵以1为根的树,把这颗树除1以外的结点划分为k个集合(可以有空集),把1加入划分后的集合 每个集合的结点形成一棵最小生成树 所有最小生成树的权值之和最大化 【思路】 最小生成树,每个点u到root 1都要
阅读全文
摘要:acm.hdu.edu.cn/showproblem.php?pid=6058 【题意】 给定一个排列,计算 【思路】 计算排列A中每个数的贡献,即对于每个ai,计算有ni个区间满足ai是区间中的第k大,那么ai对答案的贡献就是ai*ni 以ai为起点,统计ai右边离ai最近的,比ai大的k个数的位
阅读全文