- 博客(17)
- 问答 (1)
- 收藏
- 关注
原创 北京网赛I题 hiho1391 (树状数组、区间覆盖最大值问题)
题目链接:http://hihocoder.com/problemset/problem/1391 题意:A国和B国向对方分别投射N枚和M枚导弹(发射时间,飞行时间,伤害值),同时两国各自都有防御系统,导弹碰到防御系统会发生反弹。B国防御时间固定,求A国受到的最小伤害。 思路:对于从A国发射的导弹,判断到达B时(a+b)是否在B国防御区间[x , x + Tb]内,如果不在就不用管了,在的话计
2016-09-25 23:50:30 355
原创 HDU5883(青岛网赛1006)(欧拉路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5883 思路: 欧拉路的性质:经过每条边一次且仅一次,奇度定点个数为0(欧拉回路)或2(欧拉路)。 度数为x的顶点,贡献为(x+1)/2%2,首先当然需要先判断是否存在欧拉路,再分是否为欧拉回路两种情况讨论。 #include #include #include using namespace
2016-09-22 23:30:32 507
原创 HDU5898、 HDU 2089(数位DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5898 题意:很明确,找出区间[l , r]中符合连续奇数为偶数,连续偶数为奇数的个数。 思路:dp[i][j][1]表示i位数j开头符合条件的数,dp[i][j][0]表示i位数j开头(之后)可能符合条件的数。 #include #include using namespace std; typ
2016-09-22 22:06:38 225
原创 区间DP合集
①HDU5115:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题意:每只狼有自身攻击和额外攻击两个属性,杀手杀死它时受到它自身攻击(ai)和相邻两只(一只)狼的额外攻击(b(i-1) , b(i+1))之和,杀死之后相邻关系会对应调整, 求杀手杀死全部狼受到的最少伤害。 思路:一开始一直想贪心,结果还是放弃了..... 区间DP,dp[i]
2016-09-16 15:29:52 1142
原创 HDU5120(几何)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5120 题意:求两圆环相交面积,模板题。 #include #include #include using namespace std; const double eps = 1e-8; const double pi = acos(-1.0); int sgn(double x) { if
2016-09-15 23:00:22 319
原创 HDU 5876 (大连网赛1009)(BFS + set)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5876 题意:给定一个图(n个顶点m条边),求其补图最短路 思路:集合a表示当前还未寻找到的点,集合b表示本次bfs之后仍未寻找到的点 #include #include #include #include using namespace std; const int N = 2e5 + 5; s
2016-09-14 15:31:59 248
原创 codeforces 682D(DP)
题目链接:http://codeforces.com/contest/682/problem/D 思路:dp[i][j][l][0]表示a串前i和b串前j利用a[i] == b[j]所得到的最长子序列, dp[i][j][l][1]表示a串前i和b串前j不利用a[i] == b[j]所得到的最长子序列, 所以,dp[i][j][l][0] = max(dp[i-1][j-1][l][
2016-09-12 23:29:46 331
原创 HDU5875 - 大连网赛1008(单调栈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5875 思路:显然F(l , r) = Al % A(l+1) % ***Ar,大于当前数的直接跳过。 #include #include #include using namespace std; const int N = 1e5 + 10; int a[N] ,Next[N]; stack s
2016-09-11 20:25:59 301
原创 codeforces 666A (DP)
题目链接:http://codeforces.com/problemset/problem/666/A 思路:dp[i][0]表示第a[i-1]~a[i]组成的字符串是否可行,dp[i][1]表示第a[i-2]~a[i]组成的字符串是否可行,显然dp[len-2][0(1)]必定不可行。 转移方程: dp[i][0] = dp[i+3][1] || dp[i+2][0] && (tmp1
2016-09-09 23:24:07 356
原创 codeforces 706D (字典树)
题目链接:http://codeforces.com/problemset/problem/706/D 题意:q次操作,可以向多重集中增添,删除,询问异或最大值。 思路:转化为二进制用字典树存储,数字从高位开始,并全部固定位30位。 #include using namespace std; const int N=2e5 + 5; int now = 1 ,Trie[N<<5][2] ,n
2016-09-09 00:32:04 334
原创 codeforces 675C Money Transfers(贪心)
题目链接:http://codeforces.com/contest/675/problem/C 题意:有n个银行围成一圈,相邻的银行可以相互转账,问最少操作次数使得余额均为0。 思路:从1-n扫一遍,处理前缀和,如果有一段长为l的子序列和为0,则操作次数可以减少一次。结果即n-出现次数最多的前缀和的值。 #include using namespace std; typedef l
2016-09-05 19:59:28 460
原创 codeforces 675D Tree Construction (map)
题目链接:http://codeforces.com/contest/675/problem/D 题意:建立一棵二叉搜索树,比当前节点小的放左边,否则放右边。问编号2~n的节点的父节点数值是多少。 思路:如果用普通的建树方法来做,在遇到深度较深的树时会超时。map的lower_bound(t)返回第一个key大于等于t的位置it,所以t必定在(it.second,it.firs
2016-09-04 19:11:02 296
原创 codeforces 682C Alyona and the Tree(DFS)
题目链接:http://codeforces.com/problemset/problem/682/C 题意:如果点v在点u的子树上且dist(u,v)>a[v]则u和其整个子树都将被删去,求被删去的点数。 思路:1为根节点,从1开始DFS遍历,记录距离dis为到祖宗节点的最大距离。 #include using namespace std; typedef long long ll;
2016-09-03 16:37:39 409
原创 HDU1005(矩阵快速幂)
Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). Inp
2016-09-03 13:29:26 389
原创 codeforces 687A NP-Hard Problem(DFS二分图判定)
题目链接:http://codeforces.com/problemset/problem/687/A #include using namespace std; const int N=1e5+5; vector a[N]; int n,m,flag=1,num1=0,num2=0; int vis[N]; void dfs(int i,int mark) { if(vis[i
2016-09-03 13:08:46 388
原创 codeforces 446B(优先队列)
题目链接:http://codeforces.com/problemset/problem/446/B #include using namespace std; typedef long long ll; const int N=1e3+3; int matrix[N][N]; ll row[N],col[N]; ll dpr[N*N],dpc[N*N]; priority_queue q;
2016-09-03 11:52:17 490
原创 codeforces 711D Directed Roads(DFS)
题目链接:http://codeforces.com/problemset/problem/711/D 思路:由于每个点出度都为1,所以没有复杂的环中带环。DFS遍历,若为环则有2^k-2种,若为链则为2^k种。 #include using namespace std; typedef long long ll; const int N=2e5+10; const int mod=1e9
2016-09-03 11:23:37 376
空空如也
一个简单的背包问题dp
2016-05-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人