思维的体操
文章平均质量分 53
mosquito_zm
这个作者很懒,什么都没留下…
展开
-
POJ1083-Moving Tables
来源:http://exp-blog.com/2018/06/14/pid-269/提示:利用房间号分割走廊,每条“子走廊”都设置一个计数器,每经过一次+1,完了最后对计数器快排,最大的次数X10就是答案初看此题有点像贪心的感觉,因为可能会想到把输入的搬运区间的交点(临界点)进行统计,这是很笨很没效率的方法,而且要考虑一堆可能情况,我按这个思路用栈做过这题,列出了所有可能的例子,结果一致但无限WA...转载 2018-07-14 11:18:49 · 153 阅读 · 0 评论 -
2017 Multi-University Training Contest 1001 (简单)(技巧)
题目链接题解:题目等价于求2^m-1在十进制下的长度-1,所以答案就是log10(2 ^ m - 1) 。由于2 ^ m 一定不等于10的某次幂,所以2^m 与2 ^ m - 1是同样的长度。所以答案应该为log10(2 ^ m - 1) = log10(2 ^m) = m * long(2) (向下取整)代码如下:#include using namespace std;in原创 2017-07-26 12:50:19 · 263 阅读 · 0 评论 -
Codeforces Round #427 (Div. 2) E. The penguin's game(交互+思维+二分)
题目链接原版题解:The solution can be separated into several parts.I. Finding the parity of the number of special icicles in the given subset using 1 question.Consider the following cases:S原创 2017-08-10 09:58:21 · 251 阅读 · 0 评论 -
2017 Multi-University Training Contest 5
1001 Rikka with Candies题解1:考虑预处理出所有 kk 的答案,问题相当于一个模 22 意义下的 \text{mod}mod 卷积,即给出数组 A,BA,B,将 A_i \times B_jAi×Bj 累加到 w_{i\ \text{mod}\ j}wi mod j 上。因为 i\ \text{mod}\ j=i-j\lf原创 2017-08-09 21:03:51 · 245 阅读 · 0 评论 -
hdu3221 扩展欧拉定理(降幂大法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3221题解:首先很容易发现递推公式fn=fn-1*fn-2;写出前几项a,b,a*b,a*b^2,a^2*b^3,a^3*b^5;易发现a,b的指数为斐波那契数列。但是当N大一点时,斐波那契数列便变得非常大。那么此时得用扩展欧拉定理降幂。a^b%p=a^(b%phi(p)+phi(p))%p原创 2017-08-16 16:58:35 · 1401 阅读 · 0 评论 -
2017 Multi-University Training Contest - Team 3 1005 计算贡献值
题意:给出n个点n - 1条边组成的树,每条边有权值,现在问你把2 3 ... n 这n - 1个点分成k部分,这k部分都是两两不相交的,然后在k部分中每一部分添加1这个点,然后求出每部分的最小生成树,要求k部分的最小生成树的权值和最大,求出这个值思路:以1为根建树,算每一条边的贡献,如果这条边下面有x个结点,如果x >= k那么这条边会被算k次,否则就是x次,相当于把这些点放到不同的集合转载 2017-08-02 11:13:59 · 472 阅读 · 0 评论 -
2-SAT
2-SAT题目总结: http://blog.sina.com.cn/s/blog_71ded6bf0100tn3d.html关于2-SAT(2-Satisfiability)资料的话就是伍昱的《由对称性解2-SAT问题》PPT和赵爽的《2-SAT 解法浅析》PDF。转载 2017-03-02 00:51:27 · 226 阅读 · 0 评论 -
康托展开是怎么来的?
康托展开是怎么来的?很显然,康托展开是本文的关键所在。你说康托他老人家当初是怎么想出来这种展开的方法的呢?我们还是以 s=["A", "B", "C"] 为例:A B C | 0A C B | 1B A C | 2B C A | 3C A B | 4C B A | 5 他的思路可能是这样的:首先,确定一个目标:将每个排列映射为一个自然数,这个自转载 2017-01-26 16:41:20 · 366 阅读 · 0 评论 -
hdu6063 RXD and math(数学/打表)
题目链接题解(伪):可以打表找下规律,就会发现答案为n^k,直接快速幂即可正解:注意到一个数字xx必然会被唯一表示成a^2\times ba2×b的形式.其中|\mu(b)| = 1∣μ(b)∣=1。 所以这个式子会把[1, n^k][1,nk]的每个整数恰好算一次. 所以答案就是n^knk,快速幂即可. 时间复杂度O(\log k)O(log原创 2017-08-02 10:52:29 · 362 阅读 · 0 评论 -
scu oj 4441 Necklace(dp+树状数组)(*)
题目链接Necklacefrog has n gems arranged in a cycle, whose beautifulness are a1,a2,…,an. She would like to remove some gems to make them into a beautiful necklace without changing their relative转载 2017-08-01 09:44:26 · 268 阅读 · 0 评论 -
scu oj 4442 Party(2015年四川省acm程序设计竞赛)(*)
Partyn frogs are invited to a tea party. Frogs are conveniently numbered by 1,2,…,n.The tea party has black and green tea in service. Each frog has its own preference. He or she may drink on转载 2017-08-01 09:35:04 · 409 阅读 · 0 评论 -
解决静态查找相同串或者有相同前缀的所有串的好方法
方法一:可以将所有带查询的串进行排序,然后就可以发现,只有排序后相邻的串才可能相同(或者有相同的前缀)。所以,在那之后,只需要从头扫一遍,即可得到答案方法二:将所有带查询的穿按位进行哈希,然后在哈希的结果中查找是否有相同的串(或相同前缀)原创 2017-07-23 17:10:19 · 437 阅读 · 0 评论 -
hdu3501 欧拉函数(或容斥原理(莫比乌斯函数))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3501题解1:显然,本体可以用容斥原理,求出每个数的倍数情况,其系数就是莫比乌斯函数。题解2:对于整数n,如果x(x题解2代码如下:#include #define ll long longusing namespace std;const int maxn = 1e5 + 10原创 2017-08-11 22:28:19 · 325 阅读 · 0 评论 -
[BZOJ2190][SDOI2008]仪仗队(欧拉函数|莫比乌斯反演)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2190题解:点(x,y)如果gcd(x,y)=1才能被看到我们把c点看做(0,0),那么我们分离出一个(n−1)∗(n−1)的矩阵,这个矩阵上能看到的点是对称的,所以我们分离出他的上三角形部分,他的第i行(2所以ans=∑i=2n−1φ(i)+3,另3个点分别是(1,1),(1,原创 2017-08-11 23:11:40 · 372 阅读 · 1 评论 -
scu oj 4443 Range Query (source :2015年四川省acm省赛)(*)
Range Queryfrog has a permutation p(1),p(2),…,p(n) of {1,2,…,n}. She also has m1+m2 records (ai,bi,ci) of the permutation.For 1≤i≤m1, (ai,bi,ci) means min{p(ai),p(ai+1),…,p(bi)}=ci;For转载 2017-08-01 09:39:02 · 290 阅读 · 0 评论 -
Jacobi迭代法与Gauss-Seidel迭代法
之前我在博客里介绍过牛顿-拉弗逊迭代法,对数据挖掘技术熟悉的同学应该还知道有梯度下降法(其实也是一种迭代算法)。今天刚好有朋友和我讨论泊松图像融合算法,我说我过去文章里给出的是最原始、最直观的实现算法。对于理解泊松融合的原理比较有帮助,但是效率可能并不理想。印象中,泊松融合是有一个以矩阵为基础的快速算法的。但是过去我浅尝辄止了,也没深究,今天刚好再提到,小看了一下,似乎涉及高斯-塞德尔迭代法。好吧...转载 2018-06-12 11:13:26 · 10073 阅读 · 0 评论 -
Catalan数,第一类Stirling数和第二类Stirling数
第一类Stirling数 s(p,k) s(p,k)的一个的组合学解释是:将p个物体排成k个非空循环排列的方法数。 s(p,k)的递推公式: s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1边界条件:s(p,0)=0 ,p>=1 s(p,p)=1 ,p>=0递推关系的说明:考虑第p个物品,p可以单独转载 2017-03-29 18:27:50 · 4533 阅读 · 0 评论 -
UVA12396/HDU4196 Remoteland 素数拆分+快速求幂
http://acm.hdu.edu.cn/showproblem.php?pid=4196题目大意:给你一个数字n,求不大于n能组成的最大的完全平方数。解题思路:完全平方数可以拆成不同的偶数个质数相乘,算出n!拆出来的各素数个数,奇数的就舍去一个,偶数的全要,然后再全部乘起来,快速求幂即可。拆分求素数个数时,每次求当前prime个数为n/prime,然后n原创 2017-08-15 23:28:06 · 284 阅读 · 0 评论 -
51Nod->1419最小公倍数挑战 (数论)
传送门: 1419 最小公倍数挑战几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。Input单组测试数据。第一行有一个整数n (1≤n≤1,000,000)。Output输出一个整数表示选三个数字的最大的最小公倍数。Input示例9转载 2017-08-15 11:00:03 · 254 阅读 · 0 评论 -
hdu2973 YAPTCHA(威尔逊定理)
题目链接题意:给出n,根据公式求和题解:这里要用到一个数论定理——威尔逊定理当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )即:当P为质数时,P可以整除(p - 1)! + 1所以此题只要判断3i + 7是否为质数即可代码如下:#include using namespace std;const int maxn原创 2017-08-15 10:18:07 · 189 阅读 · 0 评论 -
求一个图中的最大团(全连通分量) n = 40 (中途相遇法)
先给出一个图,求图中的最大团,n = 40,应该怎么求呢?我们可以使用中途相遇法,将原有的40个点分为两部分,每部分各20个点。在此之后,我们可以先对前20个点求出暴力求出所有团。设dp[mask]表示当前选择点的状态为mask(状态压缩)时的最大团数量。则在求整体最大团时,若得到后20个点中的当前团为p,找到在前二十个点中所有与p中所有点都有边的点集q,则maxc = max(max原创 2017-08-14 23:16:46 · 1937 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) E 推理+求最大团(中途相遇法)(状态压缩)(代码能力)
题目链接答案:Lemma : Let G be a simple graph. To every vertex of G we assign a nonnegative real number such that the sum of the numbers assigned to all vertices is 1. For any two connected vertice原创 2017-08-14 22:19:02 · 351 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) ( 组合数学)
题目链接题解:上组合数学:设 i 的倍数有n个,则从中选择长度为1,2,...k...,n-1,n的下标递增的序列共有这么多种。颇有当年江苏高考附加卷最后一题的感觉~(字好丑。。。有时间去学一下LaTex)要求gcd恰好为 i 的序列个数,而这么多种当中,可能有gcd比 i 大的序列,这时,需要把这些多加的减掉。怎么减?一转载 2017-08-14 17:11:26 · 211 阅读 · 0 评论 -
Asia Hong Kong Regional Contest 2016 F Playing with Numbers(Kattis Playing with Numbers)
题目链接题解:显然,如果做两次lcm,就可以得到可能的最大解(取2的最大次幂和3的最大次幂)。如果做0次,就只需要找到最小值即可。现在只剩下做一次lcm的情况了。对于这种情况,我们暴力搜索一边所有可能解即可。在比较大小的时候,我们可以通过对于2^a3^b求log2,得到的是a + log2(3)b,只需要比较这个值的大小即可。(可能会有精度误差,不过还是可以通过本题)代码如下:#inc原创 2017-08-06 14:46:34 · 539 阅读 · 0 评论 -
约数个数与具体值的求解
1:求一个数的约数个数:由约数个数定理可知,对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 。其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。2 求1到n的所有数的约数个数: 按顺序考虑每一个质数p及他们的次方,对于任意一个数y = p^w * x, 则他应当新增的因子数为w * (x的因子数)。先筛出素数,再按照枚举的方法原创 2017-07-21 19:29:58 · 669 阅读 · 1 评论 -
子图、生成子图、导出子图和主子图
所有的顶点和边都属于图G的图称为G的子图。含有G的所有顶点的子图称为G的生成子图。 设V1是V的一个非空子集,以V1为顶点集,以两端点均在V1中的边的全体为边集的子图称为G的导出子图,记作G[V1]。导出子图G[V\V1]记为G-V1,它是从G中删去V1中的顶点以及与这些顶点相关的边所得到的子图。若V1={v},则把G-{v}简记为G-v, 称为主子图。在图1-13中,G1是G的生成子图转载 2017-07-28 14:20:52 · 18856 阅读 · 0 评论 -
圆的反演变换(*)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4773题意:给定两个圆,告诉半径和圆心,它们是相离的,在这两个圆外给定一个点p,求符合条件:过点p的圆且与已知的两个圆外切的所有圆的总数和它们的圆心坐标和半径。分析:根据题意,我们设已知两个圆的半径分别为和,它们的圆心分别为和,设点p的坐标为转载 2017-08-12 11:07:00 · 3123 阅读 · 0 评论 -
poj3071 概率dp
由题可知,本题为概率dp。d[i][j] 表示第i个人从第j轮晋级的概率。 则dp[i][j] = ∑〖dp[k][j-1] * p[i][k]〗* dp[i][j-1],其中k为在当前轮次所有可能与i交手的对手。上式表示本轮中于每一个可能的对手的出现概率与胜率乘积再乘上本人晋级本轮的概率。最后答案只要找到最大值即可。 代码如下:#include <cstdio>#include <iost原创 2017-07-23 14:25:05 · 224 阅读 · 0 评论 -
Codeforces 835D Round #427 D-Palindromic characteristics—— DP+回文串
注意:凡是可以用O(n^2)算法求回文串时候,都可以用dp求解。dp[i][j] = (s[i] == s[j]) ? dp[i + 1][j -1] : 0(即当前两端是否相等,若相等,则只取决于中间是不是回文串)。预处理的时候,只需要令所有的dp[i][i] = 1,dp[i][i - 1] = 1(方便转移)即可。题解:Observation I.If the str原创 2017-08-07 17:10:02 · 236 阅读 · 0 评论 -
【Codeforces Round #404 (Div. 2)】 B 连通块(思考)
题目链接题意:给你n个点m条边 如果每个联通块都是完全图 则输出YES题解:并查集处理出联通块。 点的度=当前联通块中的点的个数-1代码如下:#include #include #include using namespace std;const int maxn = 150000 + 20;int n,m;int deg[maxn];int fa[maxn];原创 2017-03-27 15:35:27 · 225 阅读 · 0 评论 -
LA3644 X-Plosives(无向图中找环,并查集)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=19&page=show_problem&problem=1645题意:一些产品,每种产品由2种化合物合成,按顺序接收一些产品,若组成其中某些产品的化合物的种类数与这些产品的产品数相等,就要拒绝接收,因为可能爆炸,求要拒原创 2017-01-13 18:18:25 · 1002 阅读 · 0 评论 -
HDU 5521:Meeting(最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=5521Meeting Problem Description Bessie and her friend Elsie decide to have a meeting. However, after Farmer John decorated hisfences they were sep转载 2016-10-02 13:42:10 · 302 阅读 · 0 评论 -
hdu 4778 Gems Fight! (状态压缩dp+博弈)
题目链接:题目链接题意: 有 G 种颜色的宝石,放在 B 个袋子里(每种颜色可以放多个)。 两人轮流选袋子(每个袋子只能被选 1 次),每次将选出来的袋子中的宝石放到 cooker 中,cooker 可能会起反应。 反应条件是 cooker 中出现 S 个一样颜色的宝石,而且一旦起反应,每 S 个一样颜色的宝石就会获得 1 个魔法石(同时反应)。 作为奖励,每次反应结束后当前玩家可以再选一个原创 2016-08-21 10:50:53 · 339 阅读 · 0 评论 -
hdu5869——Different GCD Subarray Query(思考+树状数组)
这是我第二次做这道题了,还是没做出来,真是惭愧。。题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离线处理, 按照区间右端点排序从小到大处理询问, 用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).转载 2016-09-10 20:11:45 · 230 阅读 · 0 评论 -
hdu5873 Football Games(数学)(Landau's Theorem )
题意: 有mm组球队, 每组有b_ibi支球队. 每组之间两两踢球, 赢得加2分, 平手各加1分, 输的不得分. 现在告诉你每组里面每只球队最后的分数, 问这个分数序列是否正确.题解:如果没有平手选项, 赢得加一分的话, 可以用Landau's Theorem判定, 这题稍微修改下这个定理就好了. 令s_1,s_2,...,s_ns1,s2,...,s转载 2016-09-10 20:10:11 · 364 阅读 · 0 评论 -
hdu5869——Different GCD Subarray Query(思考+树状数组)
这是我第二次做这道题了,还是没做出来,真是惭愧。。题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离线处理, 按照区间右端点排序从小到大处理询问, 用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).原创 2016-09-10 20:08:23 · 317 阅读 · 0 评论 -
UVALive7462 ——Work problem(读题能力很重要)
题目链接:题目链接题目开头:Raymond is a big data analyst. He constructs a social network G from n persons numbered 1, 2, … , n. For two groups of persons G1 and G2 , he utilizes the following two rules to construc原创 2016-07-31 16:13:56 · 537 阅读 · 0 评论 -
poj2356——Find a multiple(抽屉原理)
从poj2356来体会 抽屉原理 的妙用Find a multipleTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3089 Accepted: 1370 Special JudgeDescriptionThe转载 2016-08-05 18:07:58 · 445 阅读 · 0 评论 -
poj1236——Network of Schools(强连通分量+缩点)
Network of Schools Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 15674 Accepted: 6213 DescriptionA number of schools are connected to a computer network. Agreements have bee原创 2016-07-30 15:53:07 · 656 阅读 · 0 评论 -
hdu 5750——Dertouzos(简单)
Problem Description A positive proper divisor is a positive divisor of a number nn, excluding nn itself. For example, 1, 2, and 3 are positive proper divisors of 6, but 6 itself is not.Peter has two p原创 2016-07-25 21:05:18 · 468 阅读 · 0 评论