关闭

HDU - 4992 Primitive Roots 【原根】

题意:                  让你求出一个数的全部原根,如果没有,输出-1; 题解“:           首先先判断该数有无原根,           一个数x若有原根 则必然满足 n=1,2,4,2p,p^r           若有原根,再暴力枚举找到最小的原根,分解质因数phi(n);           则从2~n-1 中有a 满足 a^ph...
阅读(35) 评论(0)

hdu 4920 Ugly Problem [模拟+大数减法]

点击打开链接 题意:                  给你一个巨大无比的数字。                 让你拆成50个以内的回文数字。 题解:                长度最长1000位。                成为回文很明显可以想到折半找, 如果 前半部分反转之后小于后半部分,直接可以构成一个回文,长度直接减半。         ...
阅读(31) 评论(0)

POJ - 2417 Discrete Logging 【bsgs模板】

点击打开链接 题意:           xy≡z(modp)     已知x,z,p 。 求y。 题解:                xy≡z(modp) 根据费马小定理:xp−1≡1。  如果y已经枚举到了p-1了,继续枚举的话就会产生循环。  所以,在暴搜中y的枚举范围就是0……p-1 把y分成p−1−−−−√分...
阅读(39) 评论(0)

二次剩余Cipolla算法 【转载a_crazy_czy】

大佬博客传送门 首先我们要弄清楚什么叫二次剩余,其实就是对于给定的p(p∈P)和n,如果有x满足x2≡n(modp),那么n在模p意义下就是二次剩余。说白了就是模意义下能否开根号。  我们只讨论p为奇素数的情况。  我们先定义Fp,这是一个数域,其实就是0到p−1这p个数与模p意义下加减乘除运算构成的集合。 定理1:对于x2≡n(modp),总共有p−12个的n能使...
阅读(44) 评论(0)

POJ 1845 Sumdiv 【推公式 | 逆元】

题意:            求 a^b 所有因子和。 题解:         a={p1^x1*p2^x2.....pn^xn}         sum(a^b)= (p1^0+p1^1+...+p1^x1).......;         就是算多个等比数列和。        等比数列求和公式 (a^n+1-1)/(a-1)        除法需要逆元, ...
阅读(30) 评论(0)

POJ 1811 Prime Test 【快速判质+因子分解】【模板】

题意:           给你一个数,判断是否是素数,是的话输出prime 不是素数输出最小因子。 题解:       快速判质Miller_Rabin 算法, 根据费马小定理 a^(p-1)%p==1 检测是否符合素数性质,当然有伪素数,不过概率很小,多测几次就行了。       然后Pollard 分解因子,顺序是无序的,然后找到最小的那个。 ...
阅读(48) 评论(0)

计蒜客 Frequent Subsets Problem 【暴力】

题意:                  给你n个集合,每个集合m个数,再给你一个慨率s         问所有数任意组合成的集合在n个集合中出现次数大于 s&n的有多少。         sb超级阅读理解题。 题解:                  每个数用二进制记录他分别出现在那些集合里,因为集合最大50.so ll可以存下。        然后依次枚...
阅读(52) 评论(0)

hihododer #1584 : Bounce 【规律】

题意:                给你一个n*m的棋盘, 起初一个弹珠从棋盘左上角开始朝右下方45°方向弹射,遇到墙之后转向90°。遇到拐角停止。          问最后小球停止后,只经过一次的网格有多少个。 题解:          只经过一次的网格数=路径长度-走过两次的方格数*2;          路径长度= lcm(n-1,m-1);...
阅读(33) 评论(0)

cf CodeForces - 165E 【状压dp】

题意:         给你n个数,相互按位且运算, 输出a1-an。        满足num[i]&a[i]==0; a[i]属于num。 没有满足的输出-1。 题解:                 没个数最大4e6 也就是1         a&(a^N)==0;         dp[i] 表示状态i & dp[i]==0;         所以输...
阅读(70) 评论(0)

cf 678E - Another Sith Tournament 【状压dp】

题意:        一共有n个人打擂台,第一个人是主角,他能任意选择那两个人相互比较,赢得成为擂主,继续和其他人比较,       问,主角想赢的概率最大多大。 题解:        dp[i][j]代表存活人集合为i的情况下j为擂主,主角获胜的概率,       so : dp[stat][i]=max(dp[stat][i],a[i][j]*dp[stat^...
阅读(32) 评论(0)

hdu 6215 Brute Force Sorting 【链表+队列】

题意:          给你一个数列,每次删除所有a[i]. a[i]满足, a[i]=a[i+1],           从而获得一个新数列,如果新数列还有这样的数,重复以上操作。         直到数列成为单调递增为止。 题解:         很容易想到链表模拟,但是直接一遍一遍扫肯定tle         然后可以发现,每次删掉一个数之后,受影响的只...
阅读(35) 评论(0)

poj 2411 Mondriaan's Dream 【状压dp】

题意:           一块大小n*m的地,让你用1*2 or 2*1 的瓷砖铺满。           问有多少种普法。 题解:          w,h         O(11*2^11) #include #include #include #include #define ll long long using namespace std; cons...
阅读(57) 评论(0)

hdu 2167 Pebbles[状压dp]

点击打开链接 题意:             给你一个n*n的方格,每个方格一个数字,现在让你取其中的一些数字让数字和最大,         限制条件:如果取了一个数字,那么这个数字周围的八个数字就不能再取 题解:           方格最大15*15,每层2^15种情况,但是其中有很多种非法情况。           复杂度约为 2e7,所以直...
阅读(30) 评论(0)

hdu 5450 [状亚dp][没看懂题,待补]

先贴上个代码。 #include #define ll long long using namespace std; const int maxn=105; const int maxp=15; const int maxs=200000; const int mod=10007; int N,P,k; int dp[maxn][maxs]; bool exist[maxn]; int ...
阅读(207) 评论(0)

cf 485d Maximum Value 【二分】

题意:            给你n个数,求,max( )(1 ≤ i, j ≤ n and ai ≥ aj)。          题解:         n=1e6。         先排个序,再去重。         然后我们查找每个数 ai 的右边某个数取余他本身最大,         很明显,取余操作是周期性的。n所以我们每次取 ai 个。这样复杂度最惨是 ...
阅读(247) 评论(0)
379条 共26页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:43904次
    • 积分:3958
    • 等级:
    • 排名:第8775名
    • 原创:358篇
    • 转载:8篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论