自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

佳梦作快马 诗酒趁年华

我很平凡但我拼命追赶!

  • 博客(191)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 4990

题目连接:Reading comprehension 思路:当 n 为偶数时,a[ n ] = 2 * a[ n - 1 ];当 n 为奇数时,a[ n ] = 2 * a[ n - 1 ] + 1 ;a [ 0 ] = 0;由于 m , n 太大不能考虑递推做法,所以要考虑到矩阵;我们研究上面的式子(以 n 为奇数为例,偶数亦然):a[ n ] = 2 * a[ n - ...

2018-08-08 09:38:40 243

原创 FZU 1579

题目链接:Super A^B mod C本题不能通过常规的快速幂来作答。当 A^B%Mod   当B 很大时,要通过降幂来处理。引入一个定理:A^x % m = A^(x%phi(m)+phi(m)) % m (x >= phi(m)) 了解上述定理之后问题便可转化解出。本题卡 lld .....#include<iostream>#inclu...

2018-08-07 14:30:37 157

原创 SDNU 1062

题目链接:斐波那契数列矩阵快速幂!网上一篇博客讲矩阵快速幂讲得非常好!转载地址 矩阵快速幂基本上和快速幂是一样的,所以这里我用快速幂来类比矩阵快速幂它们有3点不同:1.快速幂中的基本元素是一个正实数,矩阵快速幂的基本元素是一个矩阵。2.快速幂中的基本操作是乘法,矩阵快速幂的基本操作是矩阵乘法。3.快速幂的结果是一个实数,矩阵快速幂的结果是一个矩阵。 为了更好...

2018-08-02 15:29:58 823

原创 Light OJ 1028

题目链接:Light OJ 1028题目大意:给定一个数 n 求有多少种进制满足转换成该进制后最后一项为 0 ;思路:本题的思路就是求 n 的因数的个数!根据算数基本定理知道,对于每个整数n,都可以唯一分解成素数的乘积:                             这里的素数并不要求是不一样的,所以可以将相同的素数进行合并,采用素数幂的乘积进行表示:      ...

2018-08-01 15:28:09 141

原创 HDU 1852

题目链接:beijing 2008题意:给你n和k,2008的n次方对k取余为m,求2008的m次方对k取余  推理: 2008 = 2^3 * 251  所以 2008^N 有 3N 个 2 和 N 个251  所有仅由2组成的因子有 2^0 2^1 2^2 ... 2^(3N) 设集合 C = {2^0, 2^1, 2^2 ...,2^(3N)}; SUM(C) =  2^...

2018-08-01 11:30:02 176

转载 POJ 2992

题目链接:Divisors题意:给n和k,求组合C(n,k)的因子个数。这道题,若一开始先预处理出C[i][j]的大小,再按普通方法枚举2~sqrt(C[i][j])来求解对应的因子个数,会TLE。所以得用别的方法。在说方法前,先说一个n!的性质:n!的素因子分解中的素数p的个数为n/p+n/(p^2)+...+n/(p^k)+...《ACM-ICPC程序设计系列 数论及应...

2018-07-31 15:15:35 164

原创 HDU 5019

题目链接:revenge of GCD官方题解:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<set>using namespace std;long long int ans[100010];lon...

2018-07-31 14:24:02 152

原创 HDU 2136

题目链接:Large prime factor 水题....思路:快速筛,先求出素数,从小到大把这个素数的倍数标记为非素数,这样未被标记的就是素数,而且题目要求是求出一个数最大因子的序号,这样从小到大处理完之后就是所求的答案!#include<iostream>using namespace std;const int N = 1000000;int prime[N...

2018-07-31 09:41:48 268

原创 HDU 6315

题目连接:naive operations思路:本题的思路总的来说就是暴力 + 剪枝。我们依然用线段树来维护:定义结点node{ l , r , minn , contirbute} 分别为某个区间的左右端点,和该区间(b序列)内的最小值与该区间对答案的贡献。当我们修改到某一个区间的时候,如果该区间的minn > 1,那么minn--,并且给该区间打上懒标记。如果该区间的...

2018-07-30 11:10:35 319

原创 UVa 11729

题目链接:Commando War直觉告诉我们,执行时间较长的任务应该先交代。于是想了一个贪心算法:按照 J 从大到小给各个任务排序,然后依次交代。那么为什么这样做是对的呢?假设我们交换相邻的任务 X 和 Y(交换前 X 在 Y 之前,交换后 Y 在 X 之前),不难发现其他任务的完成时间没有影响。对于这两个任务而言,有两种情况:情况一 :交换之前,任务 Y 比 任务 X 先结束,不难...

2018-07-27 09:32:03 184

原创 洛谷 P2181

题目连接:对角线思路:首先由于不会有三条对角线交于一点,所以过某一个交点有且只能有2条对角线而这两条对角线实质上是确定了4个顶点(也可以看做是一个四边形的两条对角线交于一点,求四边形的数量)。因此我们只需要确定4个顶点就得到了这个唯一确定的交点。因此我们只需要求这样4个顶点的搭配有多少个了也就是从n个顶点中取4个出来。根据组合数的公式,(如果你不知道组合数的公式可以这么...

2018-07-26 15:08:52 472

原创 洛谷 P1892

题目链接:团伙并查集重点是如何理解:敌人的敌人是朋友 这句话。思路一:用一个结构体把敌人都存起来,然后循环找队友。这样做这个题也是可以 AC 的,因为这个题的数据比较小,但是对于较大范围的数据可能就不一定能过了。思路二:只用一个一维数组来存最近的敌人,因为前面的敌人已经被合并过了。通过思路二,可以节省大量的时间,如果数据规模大的话也能 AC ! #include&lt...

2018-07-25 11:37:37 163

原创 洛谷 P 1115

题目连接:最大子段和本题可用 dp 和 分治法来求解。现在主要学习分治法。。。如果将所给的序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有三种情况:(1) a[1:n]的最大子段和与a[1:n/2]的最大子段和相同(2) a[1:n]的最大子段和与a[n/2+1:n]的最大子段和相同(3) a...

2018-07-24 09:26:21 134

原创 HDU 2612

题目连接:Find a way  题目大意:Y 和 M 想在 KFC 见面,找到一条最短的路,其中 # 是障碍,不能走这里。思路:保存每一个 KFC 的位置,计算从每一个 KFC 到这两个人的距离即可。。。But ... 为啥会 MLE ! #include<iostream>#include<cstdio>#include<queue&...

2018-07-23 09:28:02 216

原创 POJ 3061

尺取法:顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。之所以需要掌握这个技巧,是因为尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以尺取法是一种高效的枚举区间的方法,一般用于求取有一定限制的区间个数或最短的区间等等。当然任何技巧都存在其不足的地方,有些情况下尺取法不可行,无...

2018-06-08 19:52:58 118

原创 51 Nod 1284

题目链接:2 3 5 7 的倍数对于这个题目我们可以先找出来 2 3 5 7 的倍数 然后做差即可将 n 依次除以 2 3 5 7 就可以得到2 3 5 7 的倍数,但是中间可能有重复的(比如 6 ,在计算 2 的倍数时数了一次,在计算 3 的倍数时又数了一次)进行去重:1)用 2 3 5 的倍数的个数 - 2 3 5 7 倍数的个数        这样在计算 2 3 5 的倍数时就不会计算 2 ...

2018-05-31 20:25:03 139

原创 HDU 1220

题目链接:Cube大意:将边长为 n 的正方体分割成 1 * 1 * 1  的正方体,问有多少对正方体,他们之间有不超过 2 个公共的点。。。正推的话感觉难度不小。。。因为任意两个正方体,他们之间可能有 0 1 2 4 个共同的点;所以我们可以想到“正难则反”边长为 n 的正方体,可以分割成 n*n*n 个 1*1*1 的正方体,从中任取两个 即为 n*(n-1)/2下面计算两个正方体之间有四个点...

2018-05-31 19:31:01 270

原创 POJ 3692

题目链接:kindergarten最大独立集 = 总的点数 - 最小覆盖集 = 总的点数 - 最大流匈牙利算法#include<cstdio>#include<cstring>using namespace std;#define N 205 int g[N][N];int match[N];int vis[N];int n,m,k;int df...

2018-05-02 20:46:14 134

原创 HDU 1150

题目链接:Machine schedule二分图最小点覆盖。。。这里采用网络流做法(匈牙利也ok1.最大匹配=最大流每一条流量为1的增广路对应一条匹配边,最大流就是最大匹配2.最小覆盖集=最小割最小覆盖集是选择最少的点使每条边至少有一个端点被选中,即S-T的所有通路必须割断——最小割3.最大独立集=总点数-最小覆盖集最大独立集和最小覆盖集互为补集,因为只要不选最小覆盖集的所有点,每条边就至少有一个...

2018-05-02 19:40:03 157

原创 Codeforce 96D

题目链接:volleyball题目大意:给出N个点,M条无向边。现在给出起点和终点,每个点都有一个司机 ,每个司机能够接受出发的路径长度为ti,在长度范围内花费均为ci,问我们从起点到终点的 最小花费。这个题的思路就是预处理一下最短路,然后根据两个点之间的花费再重新建图!!!n 和 m 都是不大于 1000 的,矩阵存图就可以!(我最初用链式前向星存图,然后就把自己弄晕了!!!#include&l...

2018-05-01 16:41:22 108

原创 洛谷 P1433

题目链接:吃奶酪一道搜索题(水。。。不过要注意剪枝否则会 T#include<iostream>#include<cstdio>#include<queue>#include<cmath>using namespace std;const int N = 100;int n;struct Node{ double x; ...

2018-05-01 15:07:24 293 1

原创 03 04做题总结

3 & 4 月做题总结题目链接主要思路确定比赛名次拓扑排序奇怪的梦境拓扑排序判环逃生反向拓扑仪仗队o欧拉函数秦队长的猜想g哥德巴赫猜想棋盘问题 DFS + 回溯非常可乐 BFS  or  数论表达式求值m模拟legal or not t拓扑排序产生冠军t拓扑排序    Reward 拓扑排序模拟赛 模拟模拟赛 模拟成语接龙 BFS硬币翻转 模拟全排列问题 搜索模板网络流 网络流网络流 网络...

2018-05-01 10:48:44 99

原创 Fibonacci 第七届ACM山东省赛

题目链接:Fibonacci题意:判断所给的数能不能由斐波那契数组成,如果能输出任意一种组成形式,不能输出-1 。可以暴力AC#include<cstdio>#include<iostream>using namespace std;long long num[10000];long long count[100];int main (){ num[1]=1;...

2018-05-01 10:12:19 115

原创 POJ 2195

题目链接:Going Home二分图最大权匹配 KM  或者 最小费用最大流 现在提供网络流的做法 阅读全文请移步 费用流解最大权匹配这篇博客也不错 二分图带权匹配#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<cmath>us...

2018-04-29 16:16:03 263

原创 HDU 1599

题目链接:find the mincost route Floyd 求最小环。 (n^3)模板题!#include<iostream>#include<cstdio>#define INF 0x3f3f3fusing namespace std;int Map[110][110],disc[110][110];int n,m;void floyd(){ ...

2018-04-28 20:51:21 202

原创 二分图 ( 未完待更...

过山车 ( 二分图最大匹配#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<algorithm>using namespace std;const int N = 100000;const int INF = 10000000...

2018-04-28 18:32:11 114

原创 poj 1274

题目链接:poj 1274二分图匹配正好学了网络流,本想着用网络流来搞一搞,结果,一直 WA  改了一下数组大小。。竟然 A 了,Orz想不明白(还是去学一下匈牙利吧 T_T#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<que...

2018-04-27 20:52:53 134

原创 洛谷P1231

题目链接:教辅的组成网络流求解二分图网络流的题难点在于发现题是网络流和如何建图!!!尤其是建图!!!(除了建图,其他都是模板了。。。思路:首先我们可以分析一下,这道题,实际上是个匹配的问题,而且是一一对应的匹配,所以我们才能把流量设为1,仔细想想网络流的原理,是对这张图进行增广,如果有一条路能够从头走到尾就是一个匹配,并且每一条路只能走一次,那这样想是不是就觉得可以用网络流了呢?因为流量都是一,所...

2018-04-25 20:46:41 166

原创 知识点

网络流解二分图一个无向图是二分图的充要条件是不存在奇环。常用技巧:棋盘图黑白染色形成二分图&&网格x-y形成二分图。S向左侧xi连边,右侧yi向T连边,边权全部为1。1.最大匹配=最大流每一条流量为1的增广路对应一条匹配边,最大流就是最大匹配2.最小覆盖集=最小割最小覆盖集是选择最少的点使每条边至少有一个端点被选中,即S-T的所有通路必须割断——最小割3.最大独立集=总点数-最小覆...

2018-04-25 19:43:25 102

原创 洛谷P 2936

题目链接:全流最大流模板题!#include<bits/stdc++.h>using namespace std;const int N = 100100;const int INF = 10000000;struct Node{ int to; int ne; int w;}e[N<<1];int head[N],dis[N],deth[N];int ...

2018-04-25 19:06:03 109

原创 洛谷P1088

题目链接:火星人思路:这一题一看就是一个全排列问题!先求出给定序列的全排列是第几个,然后加上 m 后输出这个全排列即可!看似一道很简单的题!如果采用枚举的话,不用想了,肯定超时啊!!!我们看一下数据,发现 m 挺小的,那我们就想到了,是不是可以通过枚举 m 来求解呢?答案当然是肯定的了!我们先一步到给定的全排列,然后枚举出第 m 个即可!!!。所以,困难又来了,如何一步到给定的全排列?我也不会。。...

2018-04-25 17:31:15 196

原创 洛谷P1576

题目链接:最小花费A 转账给 B 手续费 为 x1 , B 转账给 C 手续费为 x2 ,则由 A 转账给 C 手续费为  x1 * x2; if(dis[to] < dis[now] * e[i].w) dis[to] = dis[now] * e[i].w;代码如下#include<iostream>#include<cstdio>#...

2018-04-24 20:40:49 185

原创 洛谷P1629

题目链接:邮递员思路:先正向存边,求出最短路后再反向建边,再跑一遍最短路即可!#include<iostream>#include<cstdio>#include<cstring>#include<bits/stdc++.h>using namespace std;const int N = 520000;const int maxn =...

2018-04-24 19:40:18 212

原创 洛谷P 1396

题目链接:营救以前用最短路和最小生成树分别写过这个题解报告最短路&&最小生成树链接直到现在我才直到原来还可以用二分答案来做!!!(果然看到最大值最小就要想到二分答案!!思路:首先用邻接表来存边,并且找出边权的最大值(方便二分嘛),然后就是敲二分模板了重点是 check 函数!我们对于当前假设的值(即最大值最小的值)是可行的,就用当前这个值跑一遍最短路,如果可以走到终点的话,就说明是...

2018-04-23 17:44:31 154

原创 洛谷P2768

题目链接:挑石头还是一道二分题思路:将起点到终点的距离进行二分,再判断,在当前距离下会 去掉 多少块石头,如果需要移走的石头的数量要比题目给定的要多的话,返回0,否则返回1重点是写 check 函数!!!#include<iostream>#include<algorithm> #include<cstdio>using namespace std;lo...

2018-04-22 23:07:26 97

原创 Code Force 645 C

题目链接:Enduring Exodus比赛的时候想着用 bfs 来做的,第十个点一直超时!!!很难受了然后比赛完了才知道这是二分答案的题!好吧,再补充补充知识点!#include<iostream>#include<cstdio>using namespace std;int a[100100];int pre[100100]; // 前缀和,方便计算int n...

2018-04-22 21:21:12 207

原创 洛谷P1824

题目链接:进击的奶牛对于 最小值最大化 和 最大值最小化,采用的是二分答案!(还是太菜了!!!#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<algorithm>using namespace std;int n,c,p;i...

2018-04-22 19:52:34 275

原创 UVA 10462

题目链接:Is There A Second Way Left? 就是很单纯的判断次小生成树!!!昨晚刚开始看,今天就考了!(关键是没做出来说一下思路吧:先求出来最小生成树,然后每次去掉最小生成树上的一条边(枚举!)若能再求最小生成树!即为次小生成树!(可能估计次短路也是这样吧!!!心累。。。#include<iostream>#include<cstring>#inc...

2018-04-21 20:37:37 240

原创 双向广搜

双向广搜(内含八数码题解双向广度优先搜索算法的步骤如下: 1)定义状态结点     与广度优先搜索算法相同。 2)确定结点扩展规则     与广度优先搜索算法也相同。但需要定义两个队列,一个存储(从初始结点向目标结点)正向扩展的结点,另一个存储(从目标结点向初始结点)反向扩展的结点。 3)搜索策略 (1)从正向扩展的队列头取出一个结点,检查它按照扩展规则是否能够扩展,如果能则产生一个新结点。 (2...

2018-04-18 21:14:36 326

原创 康拓展开

先推荐一篇博客:康拓展开题目链接:八数码难题(网上的大佬都好强啊。。。本菜鸡表示看不懂他们写的啥先保存着!!!#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>using namespace std;int fac[...

2018-04-18 20:31:09 182

Django小项目超简单贼适合新手

用来练习如何部署到阿里云的一个小小小小小小小的项目

2021-01-09

空空如也

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

TA关注的人

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