自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逐梦者

我本将心向明月,奈何明月照沟渠!

  • 博客(152)
  • 资源 (28)
  • 收藏
  • 关注

原创 51Nod-1031-骨牌覆盖

ACM模版描述题解可以考虑为两种情况,一种是竖着放一个,则前边的位置有F[n - 1]种,另一种是横着放两个,则前边的位置有F[n - 2]种,由此可以发现这里的F[n]符合斐波那契数列,所以F[n] = F[n - 1] + F[n - 2]。代码#include <iostream>using namespace std;const int MOD = 1e9 + 7;const int MA

2016-07-31 15:53:35 697

原创 51Nod-1024-矩阵中不重复的元素

ACM模版描述题解由于是指数级别的对比,所以取对数是一个很好地解决办法。然后悉数插入set,直接输出set的size()即可。代码#include <iostream>#include <cmath>#include <set>using namespace std;set<double> S;int main(int argc, const char * argv[]){ int m

2016-07-31 14:39:39 499

原创 51Nod-1014-X^2 Mod P

ACM模版描述题解枚举即可,注意防止数据溢出。代码#include <iostream>typedef long long ll;using namespace std;int main(int argc, const char * argv[]){ int P, A; ll X; while (cin >> P >> A) { bool flag

2016-07-31 10:18:57 1232

原创 51Nod-1010-只包含2 3 5的数

ACM模版描述题解先打表生成丑数,然后二分查找到大于等于n的第一个数。代码#include <iostream>#include <cstdio>#include <queue>using namespace std;typedef unsigned long long ull;const int MAXN = 1e4 + 1e3;/* * Ugly Numbers * Ugly numbe

2016-07-31 10:06:05 598

原创 51Nod-1007-正整数分组

ACM模版描述题解被包装后的01背包。所有整数和最大为10000,所以只要求在sum/2的背包中,最大的价值,然后fabs(sum - dp[N][C] - dp[N][C])即为结果。代码#include <iostream>#include <algorithm>#include <cmath>#include <cstring>using namespace std;const int

2016-07-31 03:26:45 742

原创 51Nod-1381-硬币游戏

ACM模版描述题解侮辱智商的题。目测51Nod最水的一道题,没有之一(老套路)。迫于强迫症,想要完整记录自己刷51Nod的所有题,所以……水一些经验吧。 这里根本不用考虑相切的情况。直接R + R就过了。代码#include <iostream>using namespace std;int main(int argc, const char * argv[]){ int T;

2016-07-31 02:16:44 460

原创 51Nod-1344-走格子

ACM模版描述题解逐个处理,当energy小于0时,res就加上-energy,最后直接出结果。一道水题。代码#include <iostream>#include <cstdio>using namespace std;int main(int argc, const char * argv[]){ //freopen("input.txt", "r", stdin); int

2016-07-31 02:02:18 1368

原创 51Nod-1283-最小周长

ACM模版描述题解直接S开方,然后查找符合条件的矩形,输出即可。这里需要强调的是一定要注意输出的是int型,因为我直接cout了double型,所以出现了几组错误答案,这几组输出的结果是科学计数法的结果,略显尴尬,细节决定成败。代码#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(in

2016-07-31 01:41:32 947

原创 51Nod-1182-完美字符串

ACM模版描述题解先进行大小写转换并统计各字母出现次数,然后排序,最后按出现次数的顺序分配权值,出现次数越多,权值越大,累加即可。代码#include <iostream>#include <cstdio>#include <string>#include <algorithm>using namespace std;string S;int letter[100] = {0};int ma

2016-07-31 01:16:26 596

原创 51Nod-1091-线段的重叠

ACM模版描述题解先进行排序,然后互相比较,留最长。然而单纯地互相比较会在最后几组数据超时,所以需要进行一个小小的优化,L[j].y > L[i].y时,直接跳出i与后续的j的比较。如此,AC之……代码#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 5e4 +

2016-07-31 00:55:42 450

原创 51Nod-1090-3个数和为0

ACM模版描述题解数据比较水,复杂度为O(n^3)一样可以过。但是想要优化起来比较麻烦,细节问题挺多的。代码#include <iostream>#include <algorithm>using namespace std;const int MAXN = 1010;int A[MAXN];int main(int argc, const char * argv[]){// freop

2016-07-30 23:37:48 917

原创 51Nod-1087-1 10 100 1000

ACM模版描述题解找规律,查找数列中1的通式。 (0+1+2+…n)+1==N (o+n)*(n+1)/2+1==N n*(n+1)==(N-1)*2 (N-1)*2=m*m n代码#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(int argc, co

2016-07-30 21:51:37 974 2

原创 51Nod-1083-矩阵取数问题

ACM模版描述题解经典的动态规划。代码#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN = 505;int map[MAXN][MAXN] = {0};int dp[MAXN][MAXN] = {0};int main(int argc, const char * a

2016-07-30 20:34:12 339

原创 51Nod-1082-与7无关的数

ACM模版描述题解这道题如果暴力解题,超时是一定的,所以需要用到打表来解决。这里需要注意的是数据溢出问题,开始时因为忽略了这个问题,i * i时发生了数据溢出,所以导致大数据测试数据系数WA,找了好久才找到问题所在,于是将i定义为long long后成功AC了。代码#include <iostream>#include <cstring>#include <cstdio>using namesp

2016-07-30 16:28:13 2773 2

原创 51Nod-1080-两个数的平方和

ACM模版描述题解注意查找的范围即可(设置一个标志范围的哨兵),一道水题,无需多言。代码#include <iostream>#include <cmath>using namespace std;int main(int argc, const char * argv[]){ int N; while (cin >> N) { int A;

2016-07-30 15:05:59 826

原创 51Nod-1015-水仙花数

ACM模版描述题解打表即可。代码#include <iostream>using namespace std;const int NarNum[] = {153, 370, 371, 407, 1634};int main(int argc, const char * argv[]){ int M; while (cin >> M) { for (int i

2016-07-30 14:45:20 739

原创 51Nod-1009-数字1的数量

ACM模版描述题解一道动态规划题,考点是数位dp,这里提供两种异曲同工之妙的解法。虽然都是数位dp,但是思路有略微差异。代码One:#include <iostream>#include <cmath>#include <cstring>//#pragma warning(disable:4996)using namespace std;typedef long long ll;ll s;ll

2016-07-30 14:36:41 1842

原创 51Nod-1002-数塔取数问题

ACM模版描述题解从底层向上层推。一个简单的动态规划。代码#include <iostream>#include <cstdio>using namespace std;const int MAXN = 125300;int A[MAXN];int main(int argc, const char * argv[]){// freopen("input.txt", "r", stdi

2016-07-30 12:10:48 697

原创 51Nod-1001-数组中和等于K的数对

ACM模版描述题解这道题两种办法解,两种办法的通性是都需要排序,但是数据结构截然不同。 第一种办法是源数据进行从小到大排序,然后定一个哨兵flag,来卡住查找的范围,以此来达到减少查找次数。 第二种办法比较巧,将复杂度为O(n*m)降低为O(n)。效率略微提高,使用的手段是将数据结构改造了一下,给源数据捆绑了一个antival的辅助数据。当a[i].val < k / 2时,a[i].antiv

2016-07-30 03:51:40 725

原创 51Nod-1459-迷宫游戏

ACM模版描述题解最短路径相关算法,这里使用Dijkstra算法,进行略微修改即可。默认起点是第一个结点,这里起点是Start,并且需要加上对结点权值的考虑。代码#include <iostream>#include <cstdio>#include <cstring>#define M 505#define N 505using namespace std;const int inf =

2016-07-30 02:27:37 1049

原创 CF-Educational Codeforces Round 15-A-Maximum Increase

ACM模版描述题解输入过程中不断和前边的对比,获取每一个递增子数组的长度,留下最长即可。代码#include <iostream>#include <cstdio>using namespace std;const int MAXN = 1e5 + 5;int a[MAXN];int main(int argc, const char * argv[]){ int n; cin

2016-07-30 00:29:49 314

原创 51Nod-1384-全排列

ACM模版描述给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”, 输出为:1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211Input 输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字)Output 输出S所包含的字符

2016-07-29 21:40:27 1120

原创 51Nod-1298-圆与三角形

ACM模版描述给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交。相交输出”Yes”,否则输出”No”。(三角形的面积大于0)。Input 第1行:一个数T,表示输入的测试数量(1 <= T <= 10000),之后每4行用来描述一组测试数据。 4-1:三个数,前两个数为圆心的坐标xc, yc,第3个数为圆的半径R。(-3000 <= xc, yc <= 3000, 1 <= R <

2016-07-29 17:19:53 1808

原创 判断线段与圆是否相交

ACM模版判断线段与圆是否相交typedef long long ll;typedef struct // 点结构{ ll x, y;} Point;Point A, B, C, O; // 三角形三点与圆心ll r; // 半径// 判断线段是否和圆相交int segOnCircle(Point *p_1, Point *p_2){

2016-07-29 17:11:04 5005 2

原创 BNU Training 2016.07.29 Div. 2-B-Levko and Table

ACM模版描述Levko loves tables that consist of n rows and n columns very much. He especially loves beautiful tables. A table is beautiful to Levko if the sum of elements in each row and column of the table

2016-07-29 13:05:52 379

原创 判断四点共面

ACM模版混合积struct point{ double x, y, z; point operator - (point &o) { point ans; ans.x = this->x - o.x; ans.y = this->y - o.y; ans.z = this->z - o.z;

2016-07-29 03:30:24 3577 6

原创 51Nod-1265-四点共面

ACM模版描述给出三维空间上的四个点(点与点的位置均不相同),判断这4个点是否在同一个平面内(4点共线也算共面)。如果共面,输出”Yes”,否则输出”No”。Input 第1行:一个数T,表示输入的测试数量(1 <= T <= 1000) 第2 - 4T + 1行:每行4行表示一组数据,每行3个数,x, y, z, 表示该点的位置坐标(-1000 <= x, y, z <= 1000)。Outp

2016-07-29 03:28:07 1397

原创 51Nod-1264-线段相交

ACM模版描述给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交,输出”Yes”,否则输出”No”。Input 第1行:一个数T,表示输入的测试数量(1 <= T <= 1000) 第2 - T + 1行:每行8个数,x1,y1,x2,y2,x3,y3,x4,y4。(-10^8 <= xi, yi <= 10^8) (直线1的两个端点为x1,y

2016-07-29 01:37:54 620

原创 51Nod-1256-乘法逆元

ACM模版描述给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。Input 输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)Output 输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。Input示例 2 3Output示例

2016-07-29 01:34:19 1587

原创 斐波那契数列

ACM模版矩阵原理单独求解/* * 求斐波那契数列第N项,模MOD */#define mod(a, m) ((a) % (m) + (m)) % (m)const int MOD = 1e9 + 9;struct MATRIX{ long long a[2][2];};MATRIX a;long long f[2];void ANS_Cf(MATRIX a){ f[

2016-07-29 00:02:28 1792

原创 51Nod-1242-斐波那契数列的第N项

ACM模版描述斐波那契数列的定义如下:F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2)(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, …) 给出n,求F(n),由于结果很大,输出F(n) % 1000000009的结果即可。Input 输入1个数n(1 <= n <= 10^

2016-07-28 23:59:14 1052

原创 二叉排序树

ACM模版二叉排序树typedef bool Status;// 二叉树的二叉链表结点结构定义typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;} BiTNode, *BiTree;// 递归查找二叉排序树T中是否存在Key// 指针f指向T的双亲,其初始值调用值为NULL// 若查找

2016-07-28 04:21:20 467

原创 51Nod-1240-莫比乌斯函数

ACM模版描述莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号。(据说,高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数)。 具体定义如下: 如果一个数包含平方因子,那么miu(n) = 0。例如:miu(4), miu(12), miu(18) = 0。 如果一个数不包含平方因子,并且有k个不同的质因子,那

2016-07-28 03:30:35 1762

原创 51Nod-1212-无向图最小生成树

ACM模版描述N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树。Input 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000) 第2 - M + 1行:每行3个数S E W,分别表示M条边的2个顶点及权值。(1 <= S, E <= N,1 <= W <= 10000)Output 输出最小生成树的所

2016-07-28 02:31:11 489

原创 51Nod-1185-威佐夫游戏 V2

ACM模版描述有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。 例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <=

2016-07-27 00:04:58 1279

原创 数据类型的取值范围

ACM模版数据类型的取值范围 数据类型 取值范围 char -128 ~ 127 (1 Byte,大约3位) short -32767 ~ 32768 (2 Bytes,大约五位) unsigned short 0 ~ 65536 (2 Bytes,大约五位) int -2147483648 ~ 2147483647 (4 Bytes,大约十位) unsig

2016-07-26 23:53:02 4016 3

原创 51Nod-1183-编辑距离

ACM模版编辑距离编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。 参考题目链接: 51Nod 1183 编辑距离#include <iostream>#include <cstring>using namespace std;typ

2016-07-26 19:35:43 2426

原创 51Nod-1181-质数中的质数(质数筛法)

ACM模版描述如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。Input 输入一个数N(N <= 10^6)Output 输出>=N的最小的质数中的质数。Input示例 20Output示例 31题解根据题上提示,这里需要用到质数的

2016-07-26 18:10:54 2283 4

原创 51Nod-1174-区间中最大数

ACM模版描述给出一个有N个数的序列,编号0 - N - 1。进行Q次查询,查询编号i至j的所有数中,最大的数是多少。 例如: 1 7 6 3 1。i = 1, j = 3,对应的数为7 6 3,最大的数为7。(该问题也被称为RMQ问题)Input 第1行:1个数N,表示序列的长度。(2 <= N <= 10000) 第2 - N + 1行:每行1个数,对应序列中的元素。(0 <= S[i]

2016-07-26 14:54:42 741

原创 51Nod-1137-矩阵乘法

ACM模版描述给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果。Input 第1行:1个数N,表示矩阵的大小(2 <= N <= 100) 第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1[i] <= 1000) 第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 <= M2[i] <= 1000)Output 输出共N行,每行N个数,对应M1 *

2016-07-26 14:24:34 405

EMACS 编辑器入门

EMACS 编辑器入门 pdf

2018-05-26

ACM 国际大学生程序设计竞赛-算法与实现

ACM 国际大学生程序设计竞赛-算法与实现 pdf

2018-05-26

一站式学习 C 编程

一站式学习 C 编程 pdf

2018-05-26

算法设计与分析(第2版)

算法设计与分析(第2版)pdf

2018-05-26

设计模式:可复用面向对象的基础

设计模式:可复用面向对象软件的基础.pdf

2018-05-26

移动机器人调研报告

移动机器人调研报告.doc

2018-05-26

软件工程调研报告

近期对软件工程进行了一次小小的调研,写了这份软件工程调研报告,也许存在一些问题,欢迎大佬们指点。欢迎━(*`∀´*)ノ亻!

2018-05-26

软件工程讲义-软件工程电子书 PPT

软件工程讲义-软件工程电子书 PPT

2018-05-26

NOI 知识点

某中学 NOI 教练总结的,发给我学习,分享给大家,总结的还算是可以的。

2018-05-26

尼姆博弈 PPT

感觉挺不错的一个 PPT,适合入门看看,高手绕行。

2018-05-26

动态规划 PPT

姜太公钓鱼愿者上钩,我也不知道这个资源如何,所以酌情下载。

2018-05-26

C语言趣味程序设计编程百例精解

姜太公钓鱼愿者上钩,我也不知道这个资源如何,所以酌情下载。

2018-05-26

九种排序算法

九种排序算法!!!C 语言版的~~~希望对您有所帮助。(#^.^#)

2018-05-26

OI国家集训队论文集1999~2016

1999 年到 2016 年的一些 OI 国家集训队论文,比较多,慢慢啃吧!!!

2018-05-20

佐理慧学姐的数论总结

佐学姐分享的资源总结,挺不错的,可以好好看看。强势推荐~~~

2017-11-02

ACM模板-f_zyj 更新(内含 v 1.1 和 v 2.1 的 .pages 格式和 .pdf 格式)

总是有朋友问我啥时候更新一下自己的模板,我一直拖着没有更新,因为一次更新的时间花费太高了,我一直都想再等等,再等等就更新,可是现在大概是等不了了,快要退役了,这大概是最后一次更新了吧?希望对大家有用。

2017-09-21

十五个经典算法

十五个经典算法的深度剖析。

2016-12-05

经典算法大全

经典的算法问题。

2016-12-05

完全图匹配

完全图匹配数目。

2016-12-05

STL基础教程

一个全面的STL基础教程~~~

2016-12-05

ACM模板-f_zyj

事有烦而不可省,费而不得已,盖此为也!!!

2016-12-05

博弈论之巴什游戏

一个很好地博弈论讲义,希望对大家有所帮助。

2016-07-28

博弈论之威佐夫游戏

一个很好地博弈论讲义,希望对大家有所帮助。

2016-07-28

空空如也

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

TA关注的人

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