自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 最小生成树的两种算法

通俗的解释最小生成树就是经过了图的所有点,但是路径的权值最小。最小生成树算法主要有两种,一种按照点来,prim算法。一种按照边来,kruskal算法。prim算法先上代码:#include<iostream>#include<fstream>using namespace std; #define MAX 100#define MAXCOST 0x7fff...

2019-10-06 10:48:48 897

转载 康拓展开与逆展开

之前南昌邀请赛时,训练赛后听到大佬提到,当时完全没听过。今天又遇到了康拓展开,就顺便学习了。定义康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的名次,因此是可逆的。原理介绍X = A[0] * (n-1)! + A[1] * (n-2)! + … + A[n-1] * 0!A[i] 指的是位于位置i后面的数小...

2019-08-27 16:30:52 166

原创 hdu 6709(贪心+优先队列)

比赛那天,我也是钓了一下午的鱼,实实在在的炮灰一枚。今天补题的时候在网上看了下题解才发现原来思路如此简单。简单的说,就是尽量的多捕鱼,可以存很多鱼。当炖鱼时间大于捕鱼时间整数倍时,我们先把这个多出来的数存在优先队列,如果能在炖鱼时间刚好补完所有鱼,万事大吉,直接加上后面小于捕鱼时间的就行了。如果不行,按照多出来的时间大小取捕鱼,肯定会浪费时间,但是这个是不可避免地,我们按照大小去排,就是为...

2019-08-27 16:03:06 233

原创 hdu1847(sg函数做法)

这道题如果用N-position、P-position来做很简单。但是为了加深对sg函数的理解,又用sg敲了一遍:#include <bits/stdc++.h>using namespace std;int arr[15],sg[1005];int getsg(int x){ int visit[1005];//起初 wa了一次是因为将visit数组放在外面了...

2019-08-23 16:24:25 195

原创 博弈论

最近在学博弈。巴什博弈巴什博弈算得上是一种比较基础的游戏博弈了。有n个石头,两个人在玩游戏,每个人可以拿不超过m个的石头,假如他们做出的是最优策略,不能拿的人为败者,问谁会胜利?(例hdu1846)暂时就更新到这…...

2019-08-20 20:30:44 101

原创 母函数

母函数是一种幂级数,其中每一项的系数反映了这个序列的信息。母函数原理:“把组合问题的加法与幂级数的乘幂对应起来”。

2019-08-16 11:34:11 119

转载 逆元及中国剩余定理

关于逆元,从网上看到一句话:“除以一个数再取模等同于乘以这个数的逆元再取模”很好。这可以帮助我们去理解什么是逆元。要注意:对于逆元,我们都是说一个数x在模p的条件下的逆元是多少。而不是直接去说一个数的逆元是多少。其次,我们不难得知一个数的逆元有无穷多个,但是我们只需要求得一个数的最小正整数逆元就行了。另外,一个数在模p的条件下不一定有逆元,x关于p的逆元存在当且仅当x和p互质。求逆元有两种...

2019-08-15 20:13:48 788

原创 poj3070(矩阵快速幂)

以前学快速幂取模的时候也看到了矩阵快速幂,但无奈当时耐不下性子去看导致后面就不了了之了,现在学到数学模块,必须得掌握了,回头看看其实也就那么回事。题目这道题给的提示比较多,给了Fibonacci序列的矩阵形式,提示了运用矩阵幂的做法,是一道最基本的题目。先上关于矩阵快速幂的模板:const int maxn=2;const int mod=10000;struct matrix{...

2019-08-15 10:30:20 398

原创 线性筛素数

先上一般筛素数的方法: int check[SIZE] = {0};//元素值为0代表是素数 int prime[SIZE] = {0}; int pos=0; int flag; for (int i = 2 ; i < SIZE ; i++) { if (!check[i])//如果是素数 prime...

2019-08-13 10:59:06 216

原创 输入问题

1.有关缓冲区,大多数情况记得加getchar()2.scanf("%s",str)读到空格就停止了,gets()可以读到回车,如果在c++中gets()不行的话,可以考虑用cin.getline()。cin.getline()实际上有三个参数(指针,接受个数,结束字符),当第三个参数省略时,系统默认为‘\0’3.cin 与 scanf() 在输入数据很多时,建议不用cin,因为占用时间长。...

2019-08-13 09:41:30 234

原创 C++ next_permutation 用法

转自:https://blog.csdn.net/howardemily/article/details/68064377组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。至于...

2019-08-11 17:24:25 3662

原创 hdu 1873(优先队列)

昨天学习了优先队列,今天练练,这道题还是很简单的应用,一次ac。附代码:#include <bits/stdc++.h>using namespace std;struct node{ int time; int v; friend bool operator<(node n1,node n2) { if(n1.v==n...

2019-08-10 11:21:11 178 1

原创 ACM-ICPC 2015 Changchun Preliminary Contest A题 (优先队列)

Alisha’s Party要注意一点输入人名后的输入后要进行排序处理(从小到大)照着网上的代码,敲了一遍自己的:#include<bits/stdc++.h>using namespace std;struct node{    int time;    int v;  &nbs...

2019-08-09 14:43:18 159 1

原创 E_AHKRC_2017 Base Station Sites(二分法+贪心判断)

此题与跳石头一题很像,得用二分法去解。二分查找符合的最小距离。第一次代码wa了,没考虑到二分无法逼近到最初的最大值,后面把基站数为2的情况单独考虑后...

2019-08-08 10:41:29 237 1

原创 G-Left and Right(简单模拟题)

自己看了半天可以算出来,但是如果代码编就觉得很难实现,比较复杂。后面在李老师的指导下,找到其中的规律,要去从输出找规律。当第一个字符是R时,输出的是递增的数,且输出的数目个数是R的个数,但是当字符串中出现R时,输出也是递增的数,但数目个数是R的个数减一。当遇到L时,输出的是递减的数,数目个数要比L的...

2019-07-31 17:30:38 206 1

原创 学些优先队列

ACM-ICPC 2015 Changchun Preliminary Contest A题即用到优先队列,所以要想做出相关题,必须得掌握优先队列。在c++中,队列是一种先进先出的数据结构:在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in f...

2019-07-28 15:39:29 177 1

原创 ACM-ICPC 2015 Changchun Preliminary Contest G题(dp,状态转存图)

十二点开始得比赛,四点回来开始做(无奈)。题目:水题,本来想暴力的,后面突然想到之前做过有道有关状态转存图的题目,就想用那个去解。应该算是dp吧,算了下可能会超时,但暴力也会超,所以不如试一试。思路:建立一个二维数组,每次输入一个新的数时,刷新一下。大概意思就是如下图后面wa了一次,主要原因出在更新数组上。代码:#include <stdio.h>#include...

2019-07-25 17:07:30 103 1

原创 2019南昌丝绸之路现场赛 K题

先mark下,后面写

2019-07-24 22:02:35 168 1

原创 关于c++

由于acm很多算法模板都在c++的algorithm库中,所以掌握c++是必不可少的一步,并且很多数据结构在c++中使用起来也很方便。本篇文章记录学习c++中出现的问题:1.using namespace std;指明下面的程序使用std空间下的定义比如#include <iostream>using namespace std;int main(){ cout...

2019-07-24 17:40:17 167 1

原创 hdu1042(大数乘法 )

计算n!(1<=n<=10000)在去南昌icpc邀请赛之前,勋宇带着我们做过大数的题,刚好也是这个题。而我影响最深刻的就是运用到万进制,顾名思义,以一万为进制,因为n!是个很大的数,所以只能用数组去存。...

2019-07-21 14:43:39 155 1

原创 2019 计蒜之道 初赛 第六场 A题(括号匹配)

VIPKID 通过大数据和标签来智能地进行师生匹配。当我们把标签抽象成括号 ( ),匹配过程简化为括号串的匹配,希望聪明的你来解决如下问题:判断给定的括号序列是否合法且反回文。对于这样标签抽象组成的括号序列,我们有如下定义:合法的的括号序列:空序列;如果A、B是合法的括号序列,那么(A)和AB都是合法的括号序列;反回文的括号序列:如果序列长度为 L,且字符从 0 开始编号,那么任意的 S...

2019-07-17 21:04:08 268 1

原创 前缀和、差分之我见

前缀和顾名思义:前n项和。一般情况下,如果给出一串长度为n的a1,a2,a3…an,再给出m个询问,每次询问给出L,R两个数,要求给出区间[L,R]里的数的和。如果暴力的话,肯定会超时。但我们如果去用前缀和去计算的话(先分别求出前i项和,后面求a[R]-a[L-1]就可以得到我们要求的答案了),时间复杂度会降到O(n+m)。差分首先,给出一个问题:给出n个数,再给出Q个询问,每个询问给出...

2019-07-14 16:08:47 112 3

原创 poj3061 (尺取法)

题目大意:求一个子序列的长度,这个子序列之和必须大于指定的一个值limit,且必须长度最小,求出这个序列的最小长度。思路:#include <stdio.h>int main() {    int T;    int n,s;    int ans[100000]={0...

2019-07-09 21:03:34 144 1

原创 poj1018(贪心,dp)

题目意思:目前有一个公司需要购进宽带设备,每种设备有多款机器供选择,每种设备都需购进一台,现给出每台设备的带宽p与价格q,要求选择设备的最小带宽min§/add(q)(其中min§表示所有购进设备中最小的带宽,add(q)表示所有购进设备的价格之和)为最大,并求出该值。这道题是我在做hdu1003时看到dp做法,后面百科上推荐的运用到低级dp的题目。但是自己看了很长时间连题目意思都很难理解,后...

2019-07-06 19:19:28 198 2

原创 hdu1003(dp,最大子序列和)

这道题应该是第一次做的dp题,虽然以前可能乱做题做到过要用到dp的题,但这道题是开始!网上找了篇博客,看了下dp的思想,不得不说真的是自己见识短浅,太巧妙了。摘自他人博客:题目大意:给定序列个数n及n个数,求该序列的最大连续子序列的和,要求输出最大连续子序列的和以及子序列的首位位置  解题思路:经典DP,可以定义dp[i]表示以a[i]为结尾的子序列的和的最大值,因而最大连续子序列及为dp...

2019-07-04 21:46:50 157

原创 hdu 1002感受 (大数加法)

hdu1002没什么难度就是一道大数加法运算,起初代码wa了很多次是进位时,没考虑清楚。后面有pe了,还是题目做的少。学长说位数不超过1000,要开2000的数组,这点下次注意点。还有就是几个特殊样例:0001 10000 0000 00009999 199900 00999附上代码:...

2019-07-04 17:19:36 141

原创 hdu1000感想

第一篇博客,acm不归路开启。hdu1001 的题主要是注意下形式,以后会遇到很多这种形式的。当输入EOF时结束:while(~scanf("%d",&a))或while(scanf("%d",&a)!=EOF)...

2019-07-03 19:12:26 130

空空如也

空空如也

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

TA关注的人

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