
数学 & 博弈论 & FFT & 位运算
文章平均质量分 65
SuPhoebe
不是我针对谁,我是说在座的诸位都比我强
展开
-
4和7是一个幸运数字
一个比较有趣的面试题题意:仅由4和7组成的十进制数字被称为幸运数字,如,4,7,44,47。那么仅由幸运数字乘积得到的数字为超级幸运数字,如,28 = 4 * 7。现在给你两个数字表示上下限,让你求这段区间内有多少个超级幸运数字。总共有1000组查询,上下限最多到1012101210^{12}。思路:第一想法是容斥搞一下,但是其实非常难,因为除了爆搜很难去构造出仅由幸运数字...原创 2018-04-04 00:49:34 · 7072 阅读 · 0 评论 -
Testing Round #11
A. Up the hill原创 2014-11-21 09:19:35 · 623 阅读 · 0 评论 -
382. Linked List Random Node 蓄水池抽样法
382. Linked List Random Node题目链接题意给你一个(很长)的链表,你需要从中随机地取出一个结点的值,并且保证取每个结点的概率是相同的。解法蓄水池抽样法(resevoir sampling)的特例。在这种情况下,蓄水池抽样法总是选择第一个对象,以1/2的概率选择第二个,以1/3的概率选择第三个,以此类推,以1/m的概率选择第m个对象。当该过程结束时,每一个对象具有相同的选中概原创 2017-09-08 04:44:38 · 458 阅读 · 0 评论 -
博弈知识汇总
有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显转载 2014-07-13 18:44:58 · 792 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛02
A. 丁神去谷歌原创 2014-07-17 00:04:56 · 983 阅读 · 0 评论 -
BUPT 大二训练-博弈
比赛网址原创 2014-07-17 00:08:08 · 895 阅读 · 1 评论 -
HDU 5299 Circles Game
平均情况O(nlogn)O(nlogn)的建树,但是在最坏情况下可以退化成O(n2)O(n^2) 下面是题解的建图方式,最后的博弈用树上SG就行 // whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include <algorithm>#include <iostream>#inc原创 2015-07-21 18:35:51 · 653 阅读 · 0 评论 -
Good Bye 2014
B. New Year Permutation用floyd算出每个点能够到达的所有点然后再在没有用过的点中找一个最小的放过去// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include #include #include #include #include #include #in原创 2014-12-31 13:02:01 · 659 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛05
BOJ 442 平方的平均值注意看题啊,用long long和绝对值是肯定原创 2014-07-23 23:20:25 · 803 阅读 · 0 评论 -
HDU 4920 Matrix multiplication
#include#include#include#includeusing namespace std;#define L 805templateinline bool read(T &n){ T x = 0, tmp = 1; char c = getchar(); while((c '9') && c != '-' && c != EOF) c = getch原创 2014-08-05 18:30:22 · 594 阅读 · 0 评论 -
hiho一下 第九十二周 数论一·Miller-Rabin质数测试
模板题不是吗? 别乘法爆了long long就行// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include <algorithm>#include <iostream>#include <iomanip>#include <cstring>#include <climits>#原创 2016-04-05 21:03:11 · 705 阅读 · 0 评论 -
Codeforces Round #320 (Div. 1) A. A Problem about Polyline
首先明确一点的是,所给的点(a,b)(a,b)肯定在斜率为负的斜线上面使得xx最小。 那么我们怎么确定是在哪一条折线呢?看下图: 每条斜率为-1的折线都可以被分成虚线间的几部分。这是使得xx最小的分割方式,如果某个点虽然处于图中(1,1)→(2,0)(1,1)\rightarrow(2,0)的折线上,但是属于的是第二条虚线下方、第三条虚线上方,那么我们可以通过将整个图形缩小,使得它处于第一条原创 2015-09-17 10:08:47 · 496 阅读 · 0 评论 -
HDU 5439 Aggregated Counting
找规律暴力预处理 之后二分 1 11\ 1 2 2 32\ 2\ 3 3 4 53\ 4\ 5 那么5的位置就是1×1+2×(2+3)1\times 1 + 2\times(2 + 3) 然后暴力预处理每一段,复杂度大约是n√\sqrt{n}// HDU 5439.cpp// Created by whn6325689 on 15/9/13.// Copyright (c) 2原创 2015-09-13 21:31:56 · 623 阅读 · 0 评论 -
HDU 5358 First One
这题你必须严格地写出O(nlog(n))O(nlog(n))的时间复杂度,我们尝试了下O(nlog(n)2)O(nlog(n)^2),结果不行,而且卡常数卡得特别死。首先枚举log(SUM)log(SUM)的值,从1~33,每次固定左端点ii,然后用尺取法枚举出符合位数的SUM[l,r]SUM[l,r],这里面的sum的对数值相同,可以直接统一计算。 所以总体复杂度为O(nlog(n))O(nlo原创 2015-08-06 21:22:27 · 1254 阅读 · 0 评论 -
HDU 5292 Pocket Cube
结论题 问了学长怎么做的,学长告诉我这个结论,然后说,会玩魔方的人都知道啊… // whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include <algorithm>#include <iostream>#include <iomanip>#include <cstring>原创 2015-07-21 19:10:46 · 1089 阅读 · 0 评论 -
杨氏矩阵与钩子公式
杨氏矩阵又叫杨氏图表,它是这样一个矩阵,满足条件: (1)如果格子(i,j)没有元素,则它右边和上边的相邻格子也一定没有元素。(2)如果格子(i,j)有元素a[i][j],则它右边和上边的相邻格子要么没有元素,要么有元素且比a[i][j]大。 1 ~ n所组成杨氏矩阵的个数可以通过下面的递推式得到: 如图就是n=3时的杨氏矩阵。转载 2015-07-07 22:06:44 · 2463 阅读 · 0 评论 -
模拟退火算法分析
一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为原创 2015-02-05 11:26:57 · 3426 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛11
488. 小妹妹个数原创 2014-08-06 23:00:16 · 1542 阅读 · 0 评论 -
从头到尾彻底理解傅里叶变换算法、上
经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上作者:July、dznlong 二零一一年二月二十日推荐阅读:The Scientist and Engineer's Guide to Digital Signal Processing,By Steven W. Smith, Ph.D。此书地址:http://www.dspguide.com/pdfbook.htm转载 2015-06-05 19:34:59 · 7380 阅读 · 0 评论 -
Google Code Jam 2018: Qualification Round
资格赛,除了最后一题比较有趣以外,其他都比较简单Saving The Universe Again贪心 一开始想着尽可能将S往前移,但是想了想觉得这样移动好多次,可能才等于后面的S往前移一位的成果。 所以就变成尽可能地将C往末尾移(末尾一段连续的C就不用考虑了),即,每一次移动减少的伤害最大。int T,n;vi a1,a2;int main(){ cin>&...原创 2018-04-09 00:19:56 · 1754 阅读 · 0 评论 -
位运算趣题
一个CMU的同学问了我几道题。/* * divpwr2 - Computer x/(2^n). for 0<= n <=30 * Legel ops: ! ~ & ^ | + << >> * Max ops: 15 */int divpwr(int x, int n){ int tmp = ((x^(x>>31))) + !!(x>>31))>>n; return (tmp原创 2017-09-04 23:07:11 · 1848 阅读 · 0 评论 -
Leetcode 29. Divide Two Integers
从2016a开始到现在的2017,从MATLAB中创建出一个独立的应用程序有多种方法,可以用MATLAB提供的现有函数或者现有App。 本文介绍的是利用MATLAB的Application Compiler工具创建一个独立的应用程序,以下这个例子显示了如何从MATLAB中生成独立的应用程序。编写代码文件在MATLAB中,编写你想独立成为应用程序的MATLAB代码,保存为.m文件,此处以简单的mag原创 2016-12-10 11:08:04 · 735 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛04
BOJ 437 大家一起点外卖原创 2014-07-22 20:54:56 · 824 阅读 · 0 评论 -
BUPT 2014新生暑假个人排位赛03
A. 学姐的数码管原创 2014-07-18 23:40:28 · 948 阅读 · 0 评论 -
位运算简介及实用技巧(四) 实战篇
下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。 problem : 费解的开关转载 2014-05-01 22:25:31 · 766 阅读 · 0 评论 -
位运算简介及实用技巧(三):进阶篇(2)
今天我们来看两个稍微复杂一点的例子。n皇后问题位运算版 n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,r转载 2014-05-01 17:09:24 · 691 阅读 · 0 评论 -
位运算简介及实用技巧(二):进阶篇(1)
位运算简介及实用技巧(二):进阶篇(1)===== 真正强的东西来了! =====二进制中的1有奇数个还是偶数个 我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1转载 2014-05-01 10:50:59 · 974 阅读 · 0 评论 -
位运算简介及实用技巧(一):基础篇
去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个remake。当然首先我还是从最基础的东西说起。什么是位运算? 程序中的所有数在计算机内存中都是转载 2014-05-01 10:24:21 · 1125 阅读 · 0 评论 -
UVA 12298 Super Poker II(FFT)
题意: 每个花色恰好选择一张牌 能够构成点数和大小为N的方案数 用类似生成函数的想法,多项式的幂值表示大小,前面的系数表示的是方案数 因此想到了多项式乘法,用FFT来优化// whn6325689// Mr.Phoebe// http://blog.youkuaiyun.com/u013007900#include <algorithm>#include <iost原创 2015-06-07 18:03:51 · 1040 阅读 · 0 评论 -
ZOJ 3899 State Reversing【NTT】
题意: 有N(有序号)个怪兽,给出M(1~M)个房间,每个房间的初始状态为1,接下来有D次操作,每次操作是选择一个区间使得区间内房间的状态反转(0->1 , 1->0),每次操作后计算将这N个怪兽放进所有状态为1的房间内,且每个状态为1的房间非空的方案数。(注意房间之间不可辨别。两种方案一样,当且仅当两种方案中存在两个房间,里面的怪兽数量以及编号一致)思路: 用线段树来更新available的原创 2015-09-16 09:09:24 · 985 阅读 · 0 评论 -
ZOJ 3904 Birthday Gift【NTT】
首先,我们知道的是,num1+num2=Nnum_1+num_2=N,其中num1num_1是Alice的盒子数,num2num_2是Bob的盒子数。 那么ans[N]=∑Alice(num1)×Bob(N−num1)ans[N]=\sum Alice(num_1)\times Bob(N-num1),明显是FFT的卷积形式。接下来分析Alice(num1)Alice(num_1)的部分,下面直接原创 2015-10-18 08:32:39 · 930 阅读 · 0 评论 -
HDU 5307 He is Flying【FFT】
题意: 有n段路,每段路长度为sis_i,你从节点i到节点j,可以获得一个开心值j−i+1j-i+1,然后问你,主人公走过了所有总长度为ss的段,问你有多少开心值。 思路: 首先想到的就是类似于组合数学那样,于是就想到了母函数: (∑ix∑si)(∑x−∑si−1)−(∑x∑si)(∑(i−1)x−∑si−1)(\sum ix^{\sum s_i})(\sum x^{-\sum s_{i-1原创 2015-07-24 14:46:18 · 2070 阅读 · 0 评论 -
【HDU】1402 A * B Problem Plus 【FFT】
传送门:【HDU】1402 A * B Problem Plus题目分析:这就是大数乘法题,问两个大数相乘的结果,由于O(n2)的算法复杂度太大,所以我们用FFT来优化他。关于FFT网上资料很多,我就不多说啦。这是我做的第一道FFT,FFT是看算法导论学来的,前面几篇文章是从july大神那边转载来的,感觉都讲的很不错,简单易懂~// whn6325689// Mr.Phoebe原创 2015-06-05 21:23:21 · 721 阅读 · 0 评论 -
从头到尾彻底理解傅里叶变换算法、下
经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、下作者:July、dznlong 二零一一年二月二十二日推荐阅读:The Scientist and Engineer's Guide to Digital Signal Processing,By Steven W. Smith, Ph.D。此书地址:http://www.dspguide.com/pdfbook.ht转载 2015-06-05 19:35:41 · 834 阅读 · 0 评论 -
多项式乘法与快速傅里叶变换
十五、多项式乘法与快速傅里叶变换前言 经典算法研究系列,已经写到第十五章了,本章,咱们来介绍多项式的乘法以及快速傅里叶变换算法。本博客之前也已详细介绍过离散傅里叶变换(请参考:十、从头到尾彻底理解傅里叶变换算法、上,及十、从头到尾彻底理解傅里叶变换算法、下),这次咱们从多项式乘法开始,然后介绍FFT算法的原理与实现。同时,本文虽涉及到不少数学公式和定理(当转载 2015-06-05 19:35:02 · 2689 阅读 · 0 评论 -
ZOJ 3645 BiliBili
DescriptionShirai Kuroko is a Senior One student. Almost everyone in Academy City have super powers, and Kuroko is good at using it. Her ability is "Teleporting", which can make people to transfer原创 2015-05-17 17:08:55 · 677 阅读 · 0 评论 -
Codeforces Round #305 (Div. 1) A && B
547A - Mike and Frog先考虑,从h1h_1 ->a1a_1的过程,计算需要的时间 如果在M次内,没有到达则不可到达 然后再判断是否符合h2h_2->a2a_2的时间如果还是不行就进行周期考虑,假设h1h_1已经变成了a1a_1,h2h_2变成了xxxxxx 计算从a1a_1->a1a_1的时间(假设为cc),然后通过以下的方式 假设g(x) = Xh2 + Yg(x) =原创 2015-05-27 17:24:56 · 714 阅读 · 0 评论 -
LightOJ 1356 && LightOJ 1336
LightOJ 1356如果把不独立的两个数a和b建立关系,那么问题就是找到一个最大的集合,使得集合中的任意两个数不相关,这有点像二分图中最大独立集的概念。然后问题就是建立二分图。如果两个数a和b相关,即存在一个素数k使得a=b*k,如果对a和b做质因子分解,它们质因子的个数一定是一奇一偶,因为a比b多一个质因子k。那么我们就可以用质因子个数的奇偶性来建二分图。前段时间的编程之美中原创 2015-05-07 22:20:35 · 983 阅读 · 0 评论 -
Codeforces Round #276 (Div. 1) B. Maximum Value
数学题但是我用的是原创 2014-11-08 11:43:38 · 578 阅读 · 0 评论 -
Codeforces Round #266 (Div. 2)
B.枚举a1, b并根据原创 2014-09-15 20:06:55 · 590 阅读 · 0 评论