自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

QER 的博客

世界上本没有嵌套回调,写的人多了,也便有了}}}}}}}。

  • 博客(45)
  • 资源 (3)
  • 收藏
  • 关注

原创 POJ1651 Codevs1017 乘积最大 ---2000年NOIP全国联赛提高组 dp

POJ1651 Codevs1017 乘积最大 —2000年NOIP全国联赛提高组预处理出所有数字组合。 dp[i][k] 表示前 i 个数字已经用了 k 个 乘号。 状态转移方程:dp[i][k] = max(dp[i][k], dp[j][k-1]*mul[j+1][i]); 第i个数字用了k个乘号的状态 可以从 小于i 的j 用了k-1个乘号的状态转移而来。#include <cstd

2016-10-31 19:52:37 397

原创 Codevs 1169 传纸条/1043 方格取数 2008/2000年NOIP全国联赛提高组 多线程dp

1169 传纸条 / 1043 方格取数2条路线一起走。 dp[i][j][k][l] 表示 第一个路线走到 i, j 第二个路线走到 k, l; 由于不能重复走, 所以当 2 个路线的点重合 只加一个maps[i][j];传纸条#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using na

2016-10-30 20:17:32 366

原创 Codevs 2980 买帽子 dp(LIS)

Codevs 2980 买帽子对于一个字符串的最长对称子序列,就是它和它反串的最长公共子序列我看了DQS的题解代码:(char 数组实现)#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>using namespace std;#define MAXLEN

2016-10-30 15:33:16 381

原创 Codevs 1058 合唱队形 ---2004年NOIP全国联赛提高组 dp

Codevs 1058 合唱队形 —2004年NOIP全国联赛提高组枚举中间的最高点跑最长上升和最长下降子序列。注意,单调的数据答案是 0。真是一个好题, 数据在注释里。#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>using namespace st

2016-10-30 10:48:03 452

原创 Codves 1044 拦截导弹 ---1999年NOIP全国联赛提高组 dp(n2 || nlogn)

Codves 1044 拦截导弹 —1999年NOIP全国联赛提高组一遍最长不上升子序列, 一遍严格上升子序列。n方代码:#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define MAXN (20+2)int a[MAXN], dp[MAXN];i

2016-10-30 10:15:07 763 2

原创 Codevs 2188 最长上升子序列 dp

Codevs 2188 最长上升子序列对不合法的数字不作处理。continue#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;#define MAXN (200000+10)int a[MAXN], dp[MAXN];#define INF (1e9)in

2016-10-30 08:24:37 298

原创 Codevs 5314 蜗牛鲍勃找房子1——出发!

Codevs 5314 蜗牛鲍勃找房子1——出发!评测的时候不小心看见这个题了, 就做一下,唯一需要注意的地方是如果剩下的距离不够1分钟的速度,也按1分钟计算。#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define T (1440)int main(

2016-10-29 07:48:58 466

原创 Codevs 3955 最长严格上升子序列(加强版) dp (nlogn做法)

Codevs 3955 最长严格上升子序列(加强版) 对于同一个上升子序列, 最后一个元素越小,长度才可能越长。具体过程每次替换后输出一下 dp 数组 , 一目了然。#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#defi

2016-10-28 19:25:03 358

原创 Codevs 2598 编辑距离问题 dp

Codevs 2598 编辑距离问题 if(i == 0) dp[i][j] = j;if(j == 0) dp[i][j] = i;if(s1[i] == s2[j]) dp[i][j] = dp[i-1][j-1];else dp[i][j] = max{dp[i-1][j] + 1 // 删除 s1[i]; dp[i][j-1] + 1 // 删除

2016-10-28 16:15:22 327

原创 Codevs 1102 采药 01背包模板

#include <cstdio>#include <cstring>#include <queue>#include <cstdlib>#include <iostream>using namespace std;#define MAXN (100+10)#define MAXT (1000+10)int c[MAXN], w[MAXN];int dp[MAXN][MAXT];in

2016-10-28 10:20:34 392

原创 Codevs 1048 石子归并 区间DP

Codevs 1048 石子归并#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;#define MAXN (100+10)int sum[MAXN];int dp[MAXN][MAXN];#define min(u,v) (u<v?u:v)int main

2016-10-28 08:08:33 392

原创 Codevs 2152 滑雪 记忆化搜索DP

Codevs 2152 滑雪 dp[i][j] 为从 i, j 开始走能走多长距离。代码#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;#define MAXN (100+10)const int dx[] = {0,1,0,-1,0};const int

2016-10-27 20:06:46 327

原创 Codevs 1535 封锁阳光大学 dfs || bfs

Codevs 1535 封锁阳光大学根据题意将相邻的点染色, 如果在染色过程中碰到下一个点跟自己同色的情况就 不合法;把图染完色后,记录一下每种颜色的数量,取最小值, 如果是森林, 最后的答案是就每一个分图 的 min 相加。DFS#include <cstdio>#include <cstring>#include <queue>#include <iostream>using names

2016-10-27 19:50:01 430

原创 洛谷 P1372 又是毕业季I 数论

洛谷 P1372 又是毕业季I话说,我吃惊了。设 p 为我们的答案 那么 我们选的数肯定最大公约数都是 p 也就是说 p* 1 ,p*2, p *3, p *k; 所以 p*k <= n p <= [n/k]黑人??? .jpg#include <cstdio>int main(){ int n, k; scanf("%d%d", &n, &k); printf(

2016-10-26 20:50:54 544

原创 Codevs 1079 回家 最短路 spfa || dijkstra

Codevs 1079 回家 最短路直接利用 ASCII 码把字母转化为顶点跑最短路就可以了, 如果嫌我的方法浪费了部分空间 可以令 把所有的 ASCII 都-‘A’;spfa#include <iostream>#include <cstdio>#include <queue>#include <cstring>#define MAX_V 200#define MAX_E (10000

2016-10-24 19:19:49 383

原创 最短路模板 floyd+dijkstra+spfa

flyodvoid flyod(){ for(int k = 1; k <= V; k ++) for(int i = 1; i <= V; i ++) for(int j = 1; j <= V; j ++) dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);}di

2016-10-24 18:25:12 432

原创 洛谷 P1290 欧几里德的游戏 黄金分割

洛谷 P1290 欧几里德的游戏感觉智商被碾压……不严谨的证明: 设 G 为黄金分割比 0.6180…… 假设 a < b 则, 若 a/b <= G, 则先手赢, 反之, 后手赢。Fib: 1/2 == 0.5 ; 2/3 == 0.67 ; 3/5 == 0.6; 5/8 == 0.625 ……可以发现 严格在 0.618 上下浮动。 显然, 谁的回合内先出现 1 谁赢。 2/3

2016-10-21 20:00:46 648

原创 noi openjudge/1.9 10:找最大数序列

noi openjudge/1.9 10:找最大数序列一直搞输入啊搞输入搞不出来,搜题解,然后突然发现可以这样输入, 简单多了, 语言基础没学好?代码:#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <vector>#include <cctype>using namespace

2016-10-21 16:44:25 1996

原创 NOI OpenJudge 2971:抓住那头牛 BFS

NOI OpenJudge 2971:抓住那头牛无脑bfs?还不懂为什么我之前的方法不行……noijudge 看不到 部分数据……#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;int N, K;bool vis[100010 << 1];struct T{

2016-10-20 06:50:05 944

转载 欧拉函数公式及其证明

以下转自 百度文库炒鸡好QAQ欧拉函数 : 欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) 。 完全余数集合: 定义小于 n 且和 n 互质的数构成的集合为 Zn ,称呼这个集合为 n 的完全余数集合。 显然 |Zn| =φ(n) 。有关性质: 对于素数 p ,φ(p) = p -1 。 对于两个不同素

2016-10-19 19:49:14 6254

原创 POJ 1006 Biorhythms 生理周期 中国剩余定理

链接 : POJ 1006 Biorhythms 中文: POJ 1006 生理周期我通过 ζёСяêτ - 小優YoU 的博客学习, 不再赘述。我的代码:#include <cstdio>#include <cstring>#include <iostream>#include <queue>using namespace std;int main(){ int p, e, i

2016-10-19 19:39:34 525

原创 Codevs 1313 质因数分解

代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>#include <ctime>#define X CLOCKS_PER_SECusing namespace std;typedef long long LL;bool Judge(LL x){

2016-10-19 17:19:15 554

原创 Codevs 1792 分解质因数

不知道还有没有更优的算法……虽然我的能过…… 求教QAQ。代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>#include <ctime>#define X CLOCKS_PER_SECusing namespace std;typedef long l

2016-10-19 16:25:29 387

转载 扩展欧几里德算法详解

转载自: 扩展欧几里德算法详解 作者:zhj5chengfeng%%% 以下为原文扩展欧几里德算法 谁是欧几里德?自己百度去 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么做? 欧几里德有个十分又用的定理: gcd(a, b) =

2016-10-19 16:16:07 315

原创 扩展欧几里得

保存推导部分:gcd = b*x1 + (a-(a/b)*b)*y1 = b*x1 + a*y1 – (a/b)*b*y1 = a*y1 + b*(x1 – a/b*y1)代码:#include <cstdio>#include <cstring>#include <iostream>#include <queue>using namespace std;int exgcd(

2016-10-19 07:14:47 281

原创 POJ 青蛙的约会 exgcd

不想搞数论啊啊啊QAQ贴学长博客题解 : 【poj1061】青蛙的约会 exgcd解同余方程我的代码:#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <cmath>using namespace std;typedef long long LL;LL exgcd(LL a, LL

2016-10-19 07:01:48 2235

原创 POJ 2157 Maze DFS

POJ 2157 Maze炒鸡好的一道搜索题, 然而我并不会, 所以看得是 黄学长博客 才会做的。题意:给你一张图, n, m。由字符组成,’S’ 是起点, ‘G’ 是终点, ‘X’ 代表墙, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ 是门, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’ 是门的钥匙。其中钥匙数至少为1个,收集地图上全部 ‘a’ 才可能 开启 ‘A’, 其他也一样。输出能否从

2016-10-16 11:35:14 369

原创 Codevs 3223 4883 素数密度 2945 计算素数 埃氏筛 || 线性筛

=3223 4883 =2945 计算素数居然被卡了这么长时间 long long 的正确使用……这个题目就是先 筛出 2到b√2 到\sqrt{b} 内的素数, 然后用这些素数埃氏筛法筛 a 到 b 区间内的数。2945计算素数的话只是数据范围稍大代码#include <iostream>#include <cstdio>#include <queue>#include <cstrin

2016-10-16 07:21:27 577 1

原创 线性筛

强行草率的放上代码:#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;const int MAXN = 10000000;int n, cnt = 0;int prime[MAXN];bool vis[MAXN];void solve(){ for

2016-10-14 20:44:55 287

原创 POJ 1222 EXTENDED LIGHTS OUT (noi OpenJudge 1813)枚举

双倍经验POJ 1222 EXTENDED LIGHTS OUT (noi OpenJudge 1813)中文题面易知, 确定了第一行的状态就可以知道一下所有行的状态, 因为 完全可以通过更改 i+1 行 使 i 行 合法, 所以我们只要枚举一下 第一行的所有可能 更改开关的方案, 往下地推, 看看到了最后一行 是不是合法即可。这里用到了二进制枚举。代码:#include <iostream>

2016-10-14 10:22:54 424

原创 二进制子集生成

方法因为二进制是由0/1 组成的一串数字, 我们可以把 长度为 n 的二进制位中位为 1 的所有位置视为 序列 n 的所有选择的元素位置, 如 1001, 表示长度为 4 的序列中的 第1个元素和第 4 个元素。所以说我们只要遍历一遍 2^n 内的所有二进制数, 就能获得长度为 n 中有 1 的二进制数的所有可能性。比如, 我们求 n == 3 的所有子集, 2^3 == 8(10) == 1000

2016-10-13 20:56:11 626

转载 算术基本定理(唯一分解定理)

摘自 Loi_Peacefuldogの蒟蒻博客

2016-10-12 20:08:34 3474 1

转载 素数有无穷个的证明

构造法级数法

2016-10-12 20:04:47 9296

原创 Codevs 1018 单词接龙 DFS --2000年NOIP全国联赛普及组NOIP全国联赛提高组

Codevs 1018 单词接龙 DFS 深搜。

2016-10-12 15:26:00 1182 2

原创 Codevs 1098 均分纸牌 贪心

Codevs 1098 均分纸牌 更改纸牌的移动顺序并不会影响最后结果。

2016-10-12 14:25:08 652

原创 Codevs 1282 约瑟夫问题 线段树

Codevs 1282 约瑟夫问题线!段!树!

2016-10-12 11:21:30 599

原创 Codevs 2744 养鱼喂妹纸 二分

Codevs 2744 养鱼喂妹纸二分有多少个妹纸。验证 mid 个妹纸:遍历整个国家的城镇:

2016-10-11 17:23:22 503 5

原创 Codevs 1501 二叉树最大宽度和高度 dfs

Codevs 1501 二叉树最大宽度和高度原来如此水, 缺乏的只是勇气。

2016-10-10 21:26:37 366

原创 Codves 3143 二叉树的序遍历 递归

没想到这个题这么水啊QAQ。

2016-10-10 17:29:02 443

原创 Codves 3145 4412 4835 汉诺塔 递归

思路: 1、将 n-1 从 A 移到 B 上; 2、将 n-1 从 B 移到 C 上。步数: 根据 F(x) = 2*F(x-1) + 1, F(1) = 1;递推。代码

2016-10-10 16:55:39 448 4

编译原理 2004-2005 B试卷及答案.pdf

编译原理 2004-2005 B试卷及答案.pdf

2021-06-28

线性筛法求素数的原理与实现

线性筛法求素数的原理与实现

2016-10-14

素数的几种判断方法和实现

素数 判断 多种

2016-10-13

空空如也

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

TA关注的人

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