自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

企鹅崽博客

傻傻小白

  • 博客(69)
  • 收藏
  • 关注

原创 HDU 1395 2^x mod n = 1 暴力取模

传送门首先我们发现 n 是偶数的时候显然不可能成立其次,若 n 是 1 的话也显然不可能那么为什么 n 是奇数的话会有解呢?欧拉定理是这样说的:如果 gcd(a,n) = 1, 那么就有 af(n) ≡1(mod n)显然如果 n 是奇数的话和 2 肯定是互质的,所以必定存在 f(n)是本题的解那我们就从 1 开始暴力一边乘一边取模就好了#include <bits/stdc...

2018-12-03 13:54:33 257

原创 HDU 5750 Dertouzos 线性素数筛 最大因子

传送门题意大意是:给定的 n, d, 求不超过 n 且最大因子是 d 的数有多少个则 m*d = n 中 d 是最大因子显然如果 m 是非素数的话,那么一定可以分解出一个数,这个数会和 d 构成更大的 n 的因子。此外,如果 d 是非素数的话,那么可能 d 分解出的数乘上某个小于 d 的素数的乘积比 d 本身要大。所以这题中,如果第一次发现 d 是某个素数的整数倍,那么就应当到此为止。为什...

2018-12-03 13:54:26 297 1

原创 卢卡斯定理模板

卢卡斯定理模板适用于求 C(n,m) % p 在 p 比较大又不是特别大的情况。#include <bits/stdc++.h>using namespace std;using ll = long long;const int maxn=1e5+5;ll n,m,p;ll quick_mod(ll a, ll b, ll m) { ll ans = 1; ...

2018-12-03 13:54:21 292

原创 HDU 3037 Saving Beans 组合数递归公式 套卢卡斯定理模板

传送门这题是求 0~m个果子放在不同的 n 棵树上有多少种放置方法首先看 m 个果子的情况,用隔板法来处理这个情况。最多有 n-1 棵树能空着,那就加 n-1 个气泡进去。然后选择 n-1 个位置就把 m+n-1 分成了 n 段(n 棵树的情况)。这个对应的选择方式就是有 C(n+m-1, n-1),其实也就是 C(n+m-1, m)那么果子有 0~m 种,所有总和就是ΣC(n+i-1,i...

2018-12-03 13:54:08 211

原创 HDU 4704 Sum 隔板法 快速幂 乘法取模 费马小定理

传送门首先把 N 拆成 N 个 1, 那么要分成 k 份的话,就在 N-1 个空隙里找出 k-1 个插进去就可以了。选法是 C(n-1, k-1) 这是高中组合数学学的隔板法。而这题 k 的取值范围是 0~n-1所以就是求 ΣC(n-1, k-1) (k从 0 到 n),那么就是求 2^(n-1)接下来怎么求呢?脑子里一想,嗯,快速幂,对,快速幂。但是这个幂次有 10^100000 啊,...

2018-12-02 16:59:31 191

原创 洛谷 P1288 取数游戏II 图上博弈

传送门先走的人可以控制前进的方向:现行的人走完一条边,如果后选的人再往后走一条边不走完的话,先走的人就直接走完这条边返回,这是后走的人就一定没办法走了,因此他必须走完下一条边。这样,两个人都互相必须走完下一条边,如果先走的人往两边看看,到最近的一个0边有奇数的步数就赢了那么还有一个问题,为什么先走的人一定要控制方向走完呢?如果他往一个方向走了一半的边,那么后走的人可以根据上述讨论判断先走...

2018-12-02 14:27:12 327

原创 洛谷 P2252 取石子游戏 威佐夫博弈

传送门也是背一下的结论有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。两堆物品a,b , c=floor((b-a)*((sqrt(5.0)+1)/2)); 若a==c则后手赢,反之先手赢#include <bits/stdc++.h>using namespace std;int main...

2018-12-02 14:20:25 223

原创 HDU 2516 取石子游戏 斐波那契博弈

传送门背下来的一个概念题没什么好说的有一堆石子,两个顶尖聪明的人玩游戏,先取者可以取走任意多个,但不能全取完,以后每人取的石子数不能超过上个人的两倍,当石子数为斐波那契数 ,先手输,反之先手赢#include <bits/stdc++.h>using namespace std;int main() { int n, m; cin >> n >&

2018-12-02 14:17:13 467

原创 洛谷 P1290 欧几里德的游戏 SG 函数的另类求解

传送门我们用 n, m (n>m) 来表示当前状态显然如果 m = 0 的话是输了,上次对手已经喝完了一个所以这个状态你输了那么考虑 n, m的后继状态有哪些?(n-m,m) (n-2*m,m) (n-3*m,m) .....(n-k*m,m) (m, n%m)所以 SG[n][m] = mex{SG(n-m,m) SG(n-2*m,m) SG(n-3*m,m) .....SG(...

2018-12-02 14:05:55 272 1

原创 HDU 1848 Fibonacci again and again SG 函数的使用

传送门预处理一下 Fibonacci 数列然后预处理 SG 函数即可不同的独立子游戏用异或求得组合结果#include <bits/stdc++.h>using namespace std;const int maxn = 1e3+5;int fib[maxn];int sg[maxn];int k;int used[maxn];void getsg() {...

2018-12-02 13:47:17 254

原创 HDU 4764 Stone 巴什博弈

传送门这题简化一下模型就是, 从 1-N 写数字,谁先写到N谁就输了那反过来就是拿石子,N-1 个石子, 谁先拿完谁输。每次最多拿 k 个。那就是裸的巴什博弈了#include <bits/stdc++.h>using namespace std;int main() { int n, k; while (cin >> n >> k ...

2018-12-02 13:44:46 197

原创 POJ 2484 A Funny Game 博弈思想:复制对手操作

传送门这一题如果先手不能取完的话,后手一定可以通过取 1 个或者 2 个把局势变成两个对称的局面,后面每一步都可以复制对方的操作,最终自己胜利。#include <bits/stdc++.h>using namespace std;int main() { int n; while (cin >> n && n) { if (n == 1 |...

2018-12-02 13:40:13 176

原创 HDU 2147 kiki's game 博弈找规律

传送门这个自己画一下 NP 图看看就知道,只有行列都是奇数的时候才会输,否则都是赢#include <bits/stdc++.h>using namespace std;int main() { int n, m; while (cin >> n >> m && n && m) { if (n%1 &&am...

2018-12-02 13:35:33 218

原创 HDU 1847 Good Luck in CET-4 Everybody! 巴什博弈

传送门可以老老实实用 SG 函数求出来这个是常规解法#include <bits/stdc++.h>using namespace std;const int maxn = 2050;int sg[maxn];int used[maxn];void getsg() { sg[0] = 0; for (int i = 1; i < 1001; ++i) { f...

2018-12-02 13:33:10 230

原创 POJ 2311 Cutting Game 博弈论 SG 函数的理解

传送门这题是对 SG 函数本质理解的一个绝佳的题目之前我们做题的时候大多都是 Nim 博弈,想当然的认为 SG 函数用二进制数表示一个局面用的是棋子个数,并且也只适用于这个局面,甚至认为 SG 函数只能解决 Nim 类的题目,并且想当然的认为最初状态(即0的时候 SG = 0)实际上,SG 函数的适用范围远远比此广得多。而且 SG 函数用来表示局面的二进制只要合理能够区分局面,并且能够自圆其...

2018-11-30 22:55:19 237

原创 洛谷 P2575 高手过招 向右(左)跳动的阶梯博弈的转化

传送门如果仅仅考虑一行的情况,本题可以转化为最普通的阶梯博弈来做,我们会发现这样一个规律:空格子对于一个棋子来说,每次只能走一步,因此每一个空格子都相当于阶梯博弈的空台阶。连续的棋子走到楼梯底部(最右边)的步数是相同的,就好像是在同一个台阶上一样如果把连续台阶中的一个棋子(标号为 m )移动到了右边,那么在 m左边的棋子跳到楼梯底部(最右边)的步数是不变的,在 m 右边的棋子移动到楼梯底...

2018-11-30 22:18:51 291

原创 Uva 1378 A Funny Stone Game (ACM ICPC 2006 Asia Regional Contest Beijing A Funny Stone Game)Nim 博弈

传送门王晓珂的题解乍一看非常难理解,且听我慢慢解释。首先考虑这样一个子问题:当前棋子堆的编号为 m , 要求你把这个堆,并且放入两堆编号分别小于 m 的棋子, 这里分别计为 i, j (i, j < m)那么这种情况的 SG 是怎么求的呢?设当前编号 m 对应的局面为 Sm, 那么 Sm 的后继局面由不同状态下的 (Si , Sj )表示, 那么我们枚举所有的 i, j ,并根据...

2018-11-30 16:50:29 177

原创 unique_ptr与shared_ptr的一个坑

当所维护的指针为nullptr时unique_ptr释放时不会调用Deletershared_ptr释放时会调用Deleter在某些情况下,比如 FIFE 类型指针的 Deleter ,即 fclose, 调用 fclose(nullptr) 会抛异常...

2018-10-21 21:46:58 1418

原创 【学习笔记】条款35:考虑virtual函数以外的其他选择 & bind & function模板

来源书籍:条款35:考虑virtual函数以外的其他选择Template MethodStrategy && function<>bind()绑定普通函数绑定成员函数来源书籍:Effective C++C++ Primer条款35:考虑virtual函数以外的其他选择Template Method对于...

2018-05-11 15:39:39 268

原创 【补充上一篇】网络流问题——最大带权闭合路径 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F. Clever King

今天把吉林大学的模板也试了一下,它使用的是所谓的Dinic算法,比普通的BFS不知道快(高)到哪里去了 代码:#include<iostream>#include<algorithm>#include<cstring>using namespace std;#define N 400+5 #define typec long long // ...

2018-04-26 12:02:59 316

原创 网络流问题——最大带权闭合路径 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F. Clever King

例题 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F. Clever King割问题(来源:胡伯涛《最小割模型在信息学竞赛中的应用》)最大带权闭合路径问题(来源:胡伯涛《最小割模型在信息学竞赛中的应用》)本题分析样例实现代码结果写在最后例题 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F. Clever King In or...

2018-04-26 10:51:38 363

原创 网络流问题——最小费用最大流 POJ 2135

例题POJ 2135最小费用最大流问题SPFA(Bellman-Ford)算法分析样例实现代码本题的其余可改进方法结果例题POJ 2135 When FJ’s friends visit him on the farm, he likes to show them around. His farm comprises N (1 <= N &lt...

2018-04-26 09:27:28 518

原创 网络流问题——最大流 POJ 1273

例题POJ 1273网络流问题(来自北京大学ACM暑期课讲义–郭炜)残余网络Edmonds-Karp算法分析样例实现代码结果例题POJ 1273 Every time it rains on Farmer John’s fields, a pond forms over Bessie’s favorite clover patch. This means...

2018-04-25 21:34:46 354

原创 NUIST OJ 1347 供电站 [迭代加深搜索]

题目题目分析本题的坑整体代码与运行结果题目题目描述 你一个程序员,不知为何就当上了你们镇的镇长(人的一生当然要靠自我奋斗,当然也要考虑历史的进程)。你们镇有 N (3 <= N <= 35)个村,分别标号为 1, 2, …, N,有些村常年供电不足。现在你需要重新规划镇上的供电站的选址。现在的要求是,对于镇里的每个村,要么这个村有个供电站,要么这个村...

2018-04-20 20:57:38 286

原创 USACO Section 1.2 Broken Necklace

题目题目分析推的过程需要避免的坑整体代码USACO的题解题目题目描述 输入描述 Line 1: N, the number of beads Line 2: a string of N characters, each of which is r, b, or w输出描述 A single line containing t...

2018-04-20 17:24:41 153

原创 ACM训练 身高排队、导弹拦截 [最长不下降子序列,最长不升子序列和不升子序列的最小覆盖]

题目题目分析整体代码相似问题题目题目描述 若干人排成一行,且身高分别为b1,b2,…,bn。准备从中选出一组满足身高不降的人组成一队。 例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。有13<16<38<44<63 长度为5的不下降子序列。但经过观察,实际还有7<9<16&lt...

2018-04-18 09:53:37 425

原创 ACM训练 训练方式 [简单递归+记忆化搜索]

题目题目分析整体代码题目题目描述 自行车选手在训练时,需要围绕着场地骑行N圈。给了使得训练有效,可以一次把N全部骑完, 也可以分成若干次完成,但每次都比上一次骑的圈数要多,那么完成一次训练即骑完N圈,有多种训练方式样例输入 6样例输出 4题目分析例如,当 N = 6 时,有以下四种训练方案: 6 1 2 3 1 ...

2018-04-18 09:38:44 403

原创 NUIST OJ 1411 继续合并石子 [DP]

题目题目分析本题的区间DP整体代码与运行结果题目题目描述 在一个圆环上分布着N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数记为得分。 输入描述 每组数据的第1行为正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出描述 输出共2行,第1行为最小得...

2018-04-18 09:29:16 235

原创 NUIST OJ 1410 石子合并 [DP]

题目题目分析本题的区间DP整体代码与运行结果另一种写法未完待续题目题目描述 设有N堆沙子排成一排,其编号为1,2,3,…,N(N<=100)。每堆沙子有一定的数量。现要将N堆沙子并成为一堆。归并的过程只能每次将相邻的两堆沙子堆成一堆(每次合并花费的代价为当前两堆沙子的总数量),这样经过N-1次归并后成为一堆,归并的总代价为每次合并花费的代价和。找出一...

2018-04-18 09:11:11 387 1

原创 同余与模算术

取模的公式与性质大整数取模幂取模O(n)O(longn)模线性方程组取模的公式与性质 注意在减法中,由于a mod n可能小于b mod n,需要在结果加上n,而在乘法中,需要注 意a mod n和b mod n相乘是否会溢出。例如,当n=109时,ab mod n一定在int范围内,但a mod n和b mod n的乘积可能会超过int。需要用long...

2018-04-07 21:23:44 223

原创 拓展欧几里得与直线上的点

拓展欧几里得直线上的点求所有解拓展欧几里得基本算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by 举例:#include<iostream>using namespace std; //ax+by=gcd(a,b)void exgcd(int...

2018-04-04 09:58:48 231

原创 n&(n-1)的用处

n&(n-1)应用1:求某一个数的二进制表示中1的个数应用2:判断一个数是否是2的次幂n&(n-1)将n的二进制表示中的最低位为1的改为0,例如: n = 100100 n-1 = 100011 n&(n-1) = 100000应用1:求某一个数的二进制表示中1的个数while(n > 0...

2018-04-03 10:06:46 698

原创 蔡勒公式 计算给定时期是周几/根据偏移量计算给定日期相差天数

蔡勒公式计算给定日期是周几计算给定日期相差天数蔡勒公式 w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪:已经过完的世纪,即给定年份的前两位数字 y:给定年份的后两位数字 m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月...

2018-04-03 09:37:25 449

原创 【算法竞赛入门经典】集合的动态规划;时间优化 例题9-16 UVa1252

【算法竞赛入门经典】集合的动态规划;时间优化 例题9-16 UVa1252【算法竞赛入门经典】集合的动态规划;时间优化 例题9-16 UVa1252例题UVa1210817分析样例实现代码结果例题UVa1210817 Consider a closed world and a set of features that are defined for all t...

2018-03-10 17:19:09 258

原创 【算法竞赛入门经典】集合的动态规划;位运算 例题9-15 UVa10817

【算法竞赛入门经典】集合的动态规划;位运算 例题9-15 UVa10817【算法竞赛入门经典】集合的动态规划;位运算 例题9-15 UVa10817例题UVa1210817分析样例实现代码结果例题UVa1210817 The headmaster of Spring Field School is considering employing some new ...

2018-03-10 11:31:34 314

原创 【算法竞赛入门经典】树形DP的状态转移方程优化 例题9-14 UVa1218

【算法竞赛入门经典】树形DP的状态转移方程优化 例题9-14 UVa1218【算法竞赛入门经典】树形DP的状态转移方程优化 例题9-14 UVa1218例题UVa1218分析样例实现代码结果例题UVa1218 A network is composed of N computers connected by N −1 communication links ...

2018-03-08 09:14:09 413

原创 【算法竞赛入门经典】树的最大独立集、树的唯一性问题 例题9-13 UVa1220

【算法竞赛入门经典】树的最大独立集、树的唯一性问题 例题9-13 UVa1220【算法竞赛入门经典】树的最大独立集、树的唯一性问题 例题9-13 UVa1220例题UVa12186分析样例实现代码结果例题UVa12186 Dear Contestant, I’m going to have a party at my villa at Hali-Bul...

2018-03-08 08:53:47 351

原创 【算法竞赛入门经典】树形DP 例题9-12 UVa12186

【算法竞赛入门经典】树形DP 例题9-12 UVa12186【算法竞赛入门经典】树形DP 例题9-12 UVa12186例题UVa12186分析样例实现代码结果例题UVa12186 A couple of years ago, a new world wide crisis started, leaving many people with economic...

2018-03-07 16:18:46 315

原创 【算法竞赛入门经典】递归结构的动态规划 例题9-10 UVa1626

【算法竞赛入门经典】递归结构的动态规划 例题9-10 UVa1626【算法竞赛入门经典】递归结构的动态规划 例题9-10 UVa1626例题UVa1626分析样例实现代码结果例题UVa1626 Let us define a regular brackets sequence in the following way: 1. Empty sequen...

2018-03-06 11:32:29 291

原创 【算法竞赛入门经典】类似于最优矩阵链乘的动态规划 例题9-9 UVa10003

【算法竞赛入门经典】类似于最优矩阵链乘的动态规划 例题9-9 UVa10003【算法竞赛入门经典】类似于最优矩阵链乘的动态规划 例题9-9 UVa10003例题UVa140003分析样例实现代码结果例题UVa140003 You have to cut a wood stick into pieces. The most affordable company...

2018-03-05 22:39:29 325

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除