HDU 5845 Best Division】的更多相关文章

$dp$,字典树. $dp$递推式很容易知道.dp[i]=max{dp[j]+1} a[j]^..^a[i]<=X,并且$[j,i]$长度不能超过$L$. 但是暴力来复杂度极高,所以需要用字典树维护这个东西.将前缀异或和插入到字典树中,然后不断维护$a[i]$位置之前$L$个前缀异或和就好了. 跑了$405ms$,第一次排到第一,有点激动~~~ #pragma comment(linker, "/STACK:1024000000,1024000000") #include<…
BUPT2017 wintertraining(15) #7E 题意 把数组A划分为k个区间,每个区间不超过L长度,每一个区间异或和之和为S.现在求:S不超过X,区间个数的最大值. 且A是这样给你的:A[1], P, Q.A[i]=(A[i-1]*P+Q)%M.M为\(2^{28}\). 题解 容易想到dp, dp[i] :前 i 个数最多划分多少个区间.s[i]为前缀异或和. dp[i]=max(dp[j]+1),i-L<j<i,且s[j]^s[i]\(\le\) x. dp[n]就是答案.…
http://acm.hdu.edu.cn/showproblem.php?pid=3480 题意:一个n个元素的集合S要求分成m个子集且子集并为S,要求$\sum_{S_i} (MAX-MIN)^2$最小.(n<=10000, m<=5000) #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <iostream>…
多校1 1004 HDU-6036 Division Game 题意 有k堆石头(0~k-1),每堆n个.\(n=\prod_{i=0}^{m}p_i^{e_i}\).\(0\le m,k \le 10,2\le p\le 10^9,1\le e_i,\sum_{i=0}^me_i\le 10^5,\) 现在第i次操作可以选择第i%k堆石头,移走该堆部分石头,使得剩下的数是原来的约数.当某堆不能操作时游戏结束.求结束于每一堆的方案数.答案取模\(985661441\). 题解 参考官方题解. 对…
Different Division Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 234    Accepted Submission(s): 90 Problem Description Now we will give you a graph, there are many points in the graph. We wil…
题目链接:hdu 3480 Division 题意: 给你一个有n个数的集合S,现在让你选出m个子集合,使这m个子集合并起来为S,并且每个集合的(max-min)2 之和要最小. 题解: 运用贪心的思想,肯定首先将全部的数排好序,然后设dp[i][j]表示前j个数分为i个集合的最优解. 则有dp[i][j]=min{dp[i-1][k]+(a[j]-a[k+1])2}(0<k<j). 这样写出来是三层for的dp,考虑用斜率优化降维. 假设l<k<j,对于dp[i][j],k到j为…
/* HDU 6036 - Division Game [ 组合数学,NTT ] | 2017 Multi-University Training Contest 1 题意: k堆石子围成一个圈,数量均为n,编号为0至k-1 第i轮可以操作第 (i+1) mod k 堆石子,必须拿石子且原石子数量要求整除操作后石子数量 任意一堆石子只剩一颗后停止游戏,问游戏停止在第i堆的方案数 限制: n很大,按唯一分解定理形式给出 n = p1^e1 * p2^e2 * ... * pm^em m,k <=…
HDU 6036 Division Game 考虑每堆石头最多操作 $ \sum e $ 次,考虑设 $ f(x) $ 表示某一堆石头(最开始都是一样的)操作 $ x $ 次后变成了 $ 1 $ 的方案数量. 明显的,某一堆石头操作了 $ x $ 次后仍然没有变成 $ 1 $ 的方案数量是 $ f(x+1) $.因为最后一次操作必然是把石头从某个数字拿到1.(这个算个小trick吧?) 那么对于第 \(k\) 堆石头答案就是 $ f^{k-1}(x+1) f^{m-i+1}(x) $ 因为前 $…
IMO, version 1 better than version 2, version 2 better than version 3. make some preprocess to make you code simple and efficient. Here divide the input by 2, so you don't have to do dividsion on each loop. version 1 is best thanks to http://www.cnbl…
Division Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 999999/400000 K (Java/Others) Total Submission(s): 3984    Accepted Submission(s): 1527 Problem Description Little D is really interested in the theorem of sets recently. There’s a pro…