2015多校
文章平均质量分 77
KeyboardPianist
这个作者很懒,什么都没留下…
展开
-
HDU 5317 RGCDQ
题意:求maxGCD(F[i], F[j])(L 思路:先用筛法求出所有质数,然后求出它们的F[x], 最后求区间内的GCD(用到前缀和),F[x]最多有7种质因子,因为2 * 3 * 5 * 7 * 11 * 13 * 17 = 510510(再增加就超出题目给的数据范围) #include #include #include #define maxn 1000005 us原创 2015-08-23 15:08:16 · 315 阅读 · 0 评论 -
HDU 5372 Segment Game 树状数组
Segment Game Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1407 Accepted Submission(s): 414 Problem Description Lillian is a cleve原创 2015-09-03 22:18:55 · 437 阅读 · 0 评论 -
HDU 5336 Segment Game
题意:类似十滴水游戏,每个水滴的最大饱和值为4,超过4就会向上下左右弹出值为1的水滴,开始时会在某个位置有水滴裂开,问T秒后,原先的固定水滴的状态,如果裂开则输出0和裂开时的时间, 否则输出1和当前水滴的值 思路:用BFS就可以,注意会有同时多颗水滴同时到达一颗已经达到4值的固定水滴处,这样该固定水滴会裂开,但射向它的水滴也会立即消失。水滴的飞溅期间不会互相融合,碰到固定的水滴就被吸收。 XY原创 2015-09-03 22:32:02 · 429 阅读 · 0 评论 -
HUD Average 5353模拟
Average Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 2641 Accepted Submission(s): 624 Special Judge Problem Description There ar原创 2015-09-03 22:09:16 · 448 阅读 · 0 评论 -
HUD 5375 Gray code 动态规划
当i这个位置填0时能获取的最大值原创 2015-08-17 22:26:23 · 396 阅读 · 0 评论 -
HDU 5360 Hiking 优先队列
题意:beta想要请n个soda去远足,邀请第i个soda时要符合一个条件:当前人数不少于li并且不大于ri(如果满足就同意,即使后来的人数会不符合现在提出的条件),问最多可以邀请多少个soda,输出数目和邀请顺序(若有多种方法输出任一个即可) 思路:将soda按照l的值从小到大排列(如果soda【0】!= 0则能邀请的人数为0),每次将符合当前条件的soda(l值不大于当前已参加的人数原创 2015-08-16 16:01:23 · 368 阅读 · 0 评论 -
HDU 5305 Friends DFS+剪枝
题意:n个人,m对朋友,每一对朋友可以是online friend或者offline friends,m对朋友不重复,每个人的两种朋友数量必须相等,问有多少种方法满足要求 方法:注意:朋友的朋友和自己没有关系,用DFS回溯+剪枝,测试每对朋友为online friend和offline friends的情况,当任一个人的朋友数为奇数时候可以直接输出0因为分配不 了,原创 2015-08-27 22:46:32 · 461 阅读 · 0 评论 -
HDU 5289 Assignment
题意:问一个序列中有多少个子序列,其最大值与最小值的差小于k 方法:用单调队列解,用两个deque,q1单调递增,q2单调递减 #include #include #define maxn 100005 using namespace std; int a[maxn]; int f(int n) { return (n + n * (n - 1) / 2); } int main(原创 2015-08-27 22:30:35 · 368 阅读 · 0 评论 -
HDU 5349 MZL's simple problem 优先队列
说的很好的三种做法:点击打开链接 #include #include #define min -1000000000 using namespace std; int main() { int n, op, max, x; priority_queue q; max = min; while(scanf("%d", &n) != EOF) {原创 2015-08-25 23:07:34 · 350 阅读 · 0 评论 -
HDU 5387 Clock
题意:给出24小时制的时分秒,让你输出时针和分针、时针和秒针、秒针和分针的角度(分式) 思路:注意一下当时间超过12点的时候时针已经转了一圈了 #include #include #define ll long long int struct node { ll ra;//分子 ll na;//分母 }; ll gcd(ll a, ll b) { if(b原创 2015-08-19 21:41:05 · 387 阅读 · 0 评论 -
HDU 5238 Problem Killer
#include #define maxn 1000010 int max(int a, int b) { return a>b?a:b; } double a[maxn], d[maxn], q[maxn]; int main() { int t, n, i, res, ap, gp; scanf("%d", &t); while(t--) {原创 2015-08-21 22:56:28 · 401 阅读 · 0 评论 -
HDU 5389 Zero Escape
题意:给出A, B两个值, 再给出n个数,问n个数分成2组,使其中一组的数字根为A,另一组数字根为B,或者所有数的数字根为A或B的方法有多少种。 数字根题目有说,还可以直接把数加起来然后模9得到。 思路:dp[i][j]表示前i个数中,组成的数字根值为j的方法有多少种 状态转移:dp[i][j] = (dp[i][j] + dp[i - 1][原创 2015-08-19 21:37:14 · 336 阅读 · 0 评论 -
HDU 5344 MZL's xor
题意:刚开始并没看懂,发现样例的结果是自己的结果的两倍,所以乘2,用long long int就过了 #include #define maxn 500010 long long int A[maxn]; int main() { int n, m, z, l, t, i; long long int ans; scanf("%d", &t); while(t-原创 2015-08-20 19:08:26 · 352 阅读 · 0 评论