- 博客(5)
- 收藏
- 关注
原创 hdu 6058 链表 枚举
考虑每个数的贡献,即满足区间第k大为该数的区间个数。其实就是对于两边比起大的数,两边卡出比该数大的个数为k - 1. 用链表维护,考虑从小到大枚举,枚举完成后删除该点,保证每次枚举链表中都是比其大的数。 O(n*k) 写的挫 #include #include #include #include using namespace std; const int MAXN =
2017-08-01 21:18:37
460
原创 hdu 6052单调栈 双指针
看了别人题解 #include #include #include #include using namespace std; typedef long long ll; const int MAXN = 110; int n, m, color[MAXN][MAXN]; struct Node { int row, col; Node(){} Node(int _i, int _
2017-07-29 16:42:10
498
原创 hdu 6053 TrickGCD 容斥 莫比乌斯
比赛没搞出来。不知道借助莫比乌斯函数容斥。菜。 枚举除数时,除数相同的为一块,还可以优化。 #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; typedef long long ll; const int MAXN = 1e5 + 10; const
2017-07-27 21:38:16
298
原创 hdu 6038 Function (思维题搞一搞)
f函数的限制关系形成多个环,b的排列也形成多个循环。f中每个环要合法赋值,环的大小要能被b的某个环的大小整除,方案为b环的大小。再把f每个环的赋值方案相乘就是答案。例如f有环4,6,8。b环 2,3。ans= (2 )* (2 + 3)*(2)#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #
2017-07-26 10:33:58
288
原创 hdu 6043
#include int main() { long long n, k; int cas = 1; while (scanf("%lld%lld", &n, &k) != EOF){ long long ans; if (k n) ans = k; else{ k -= n
2017-07-26 10:22:26
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅