自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ZOJ-3872-Beauty of Array(思维)

题目链接#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int M = 1e6;int pos[M + 5], a[100005];int main(){ int n, t, l, r; long long ans; ...

2019-04-22 22:10:11 130

原创 CodeChef-IOPC17A-The Birthday Tears(模拟)

传送门:https://vjudge.net/problem/CodeChef-IOPC17A题意:给定t个字符串,通过多次从中间剪切得到最长的每个字符都相同的字串,长度为奇数的串不能剪切,这时输出-1。for循环模拟,当时做的时候没想起来。AC代码:#include<cstdio>#include<iostream>#include<string>...

2019-03-24 20:19:13 237

转载 SG函数模板

转自https://www.cnblogs.com/frog112111/p/3199780.html首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)...

2019-03-21 21:21:01 224

原创 HDU-6016-Count the Sheep(思维)

传送门:https://vjudge.net/problem/HDU-6016大意:给定n, m, k,表示n只公羊,m只母羊,k条关系,每个关系有两个整数,左边表示公羊,右边表示母羊,表示这两只羊是朋友。从某只羊开始,找到A-B-C-D这样的序列,其中A-B,B-C,C-D分别是朋友,ABCD各不相同,求这样的序列有多少种。思路:1.以公羊开头肯定以母羊结束,反之亦然,因此答案就是以公羊开...

2019-03-21 19:37:44 329

转载 (转)reverse函数:反转容器内容

转自https://blog.csdn.net/sunshihua12829/article/details/49929521reverse函数可以反转一个容器中的内容,包含在库中。1、函数原型reverse函数等同于下面的代码:template <class BidirectionalIterator> void reverse (BidirectionalIterato...

2019-03-18 19:29:08 548

原创 HDU-2509-Be the Winner | HDU-1907-John (反尼姆博弈)

HDU1907HDU2509题意:n堆物品,两人轮流拿,每次再一堆中最少拿一个,最多拿完,拿完的获胜,问谁获胜。分析:反尼姆博弈的先手必胜态:1.每堆都只有一个,只有偶数堆(尼姆和为0);2.存在物品个数大于一个的堆,并且尼姆和不为0.第一种情况好理解;第二种情况当前尼姆和不为0,一定有一种拿法使得尼姆和为0,并且尼姆和为0的时候没有拿法使尼姆和还是0(证明见链接),也就是说先后手面...

2019-03-15 20:49:02 218

转载 ACM博弈知识汇总(转)

转自http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html/-----------------------------------------------------------------------------------------------------博弈知识汇总有一种很有意思的游戏,就是有物体若干堆,可以是火...

2019-03-15 20:37:23 175

原创 HDU-5056-Boring count(思维)

传送门#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;#include&lt;iostream&gt;using namespace std;int main(){ int t, ch, l, r; long long ans, len, k; string s; ...

2019-03-11 20:38:07 141

原创 HDU-5945-Fxx and game(BFS)

传送门#include&lt;cstdio&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;queue&gt;#include&lt;cstring&gt;using namespace std;struct zhi { int dx, st;};bool visit[1000008];q...

2019-03-11 18:50:26 161

原创 CodeForces-1029C-Maximal Intersection(模拟)

传送门#include&amp;lt;cstdio&amp;gt;#include&amp;lt;algorithm&amp;gt;using namespace std;const int MAX = 3e5 + 5;struct _N{ int l, r;} a[MAX], b[MAX];bool cmp1(_N x, _N y){ if(x.l != y.l) { ...

2019-03-07 19:27:59 331

原创 CodeForces-569C-Primes or Palindromes?(打表;暴力)

传送门题意:给定p, q,求一个满足qpi[n] &lt;= prub[n]的最大的n,其中pi[n]是小于等于n的数中素数的个数,rub[n]是小于等于n的数中回文数的个数。思路:打表得到2e6数据就能满足42 1这组数据,打表之后暴力查找n。判断一个数是否是回文数:int reve(int x){ int rev = 0; while (x != 0) {...

2019-03-06 21:10:27 194

原创 CodeForces 1029A-Many Equal Substrings(KMP)

题面见传送门题目大意:给定字符串s,一个整数k,创建一个字符串使得该字符串恰好有k个字串等于s,并且尽可能使创建的字串的长度最短。分析:分为两种情况:1.给定的s的所有前缀,后缀中没有相等的, 如abc, cat;2.s中有相等的前后缀,如aba,ababaKMP算法中next数组中next[i]存的就是前i-1个字符组成的字符串中最长相等前后缀的长度,如ababa的next数组为:-...

2019-03-04 18:58:09 226

转载 快速判断能否被某个数整除

转载自https://www.cnblogs.com/xz816111/p/4580491.html    (1)被2整除的数的特征:一个整数的末位是偶数(0、2、4、6、8)的数能被2整除。(2)被3整除的数的特征:一个整数的数字和能被3整除,则这个数能被3整除。(3)被4整除的数的特征:一个整数的末尾两位数能被4整除则这个数能被4整除。可以这样快速判断:最后两位数,要是十位是单数,个位...

2019-02-26 21:38:03 6774

原创 SDNUOJ 1169 火星人(STL,全排列)

题目链接Description人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。火星人用一种非常简单的方式来表示数字——掰手指。火星人只有一只手,但这只...

2019-02-18 10:50:22 190

原创 SDNUOJ 1206 蚂蚁感冒(思维)

题目链接1206.蚂蚁感冒Description长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。Input第一行输入一个整数n ...

2019-02-16 09:05:48 259

原创 Uva10200-素数打表、精度问题

题目链接 题意: 有许多素数可以写成n*n+n+41的形式,给定n的范围[a,b], 求[a, b]内n*n+n+41是素数的概率。 思路: 素数打表,遍历[a, b]记录n*n+n+41是素数的个数, 再除以[a, b]中数的总个数;最后输出需要加1e-5, 不然会WA#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;using ...

2018-08-10 14:58:17 193

原创 欧几里得及扩展欧几里得

欧几里得算法又名辗转相除法,用于计算两个正整数a, b的最大公约数 公式 gcd(a, b) = gcd(b, a%b)(gcd()表示求最大公约数) 证明: 设a, b的最大公约数为k,设a = kx, b=ky, 其中x,y互质 代码int Gcd(int a, int b){ while(b != 0) { int r = b; ...

2018-08-09 16:35:41 134

原创 UVA 11827

题目链接 题目不难, 但是每组数据没有给出具体的数据个数, 因此不能当作数字输入, 需要按字符输入后再转化。#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;string&gt;#include&lt;iostream&gt;#include&lt;cstring&gt;using namespace std;...

2018-08-07 20:00:18 307

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

转载自:https://blog.csdn.net/qq_34446253/article/details/52211543 唯一分解定律:又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。当题目有大数相除,求余数时,精度要求高时...

2018-08-06 16:45:30 5796

原创 欧拉函数

定义 对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1) 通式 性质 代码直接求解欧拉函数: 利用欧拉函数的通式求解//转自博客https://blog.csdn.net/qq_36409190/article/details/53173777//直接求解欧拉函数 #include&lt;cstdio&gt;int euler(int ...

2018-08-06 09:47:31 163

原创 最短路-Bellman-Ford, SPFA

可以应用于有负环的情况。 在含负环的情况中, 如果最短路存在,那么一定存在不含环的最短路,这样最短路最多经过n-1个结点, 因此进行n-1次循环, 每次循环检查所有的边d[u][v] ,进行松弛操作。n-1次松弛操作完成后, 寻找是不是存在d[y] &amp;amp;amp;amp;lt; d[x] + w[i], 如果存在, 说明有负环-&amp;amp;amp;amp;gt;最短路不存在 for(int i=0; i&amp;amp;amp;amp;lt;n; i

2018-08-05 16:58:42 94

原创 最短路-Dijkstra

Dijkstra用于计算某一结点到其他所有节点的最短路 适用于边权为正的有向图或者无向图 将图中点分为两部分,一部分是已经求出最短路的点S,一部分是未求出最短路的点U,开始时S={0}, U={剩下的点}, 用d[i]表示点i到点0的距离,从U中找到d[i]最小的点m, 加入S中, 更新U中与m相连的点的d[i](松弛操作),直到图中所有的点都加入S中。memset(vis, 0 si...

2018-08-02 15:16:39 376

原创 归并排序求逆序数

归并排序是用分治法递归排序的方法: 先将未排序的序列分成两个序列, 两个序列(又分别是一个未排序序列, 递归排序)分别排序后再维护两个指针(分别指向两个序列的最小元素), 将两个序列中的最小元素比较, 将较小的那个放入一个新的序列(排完序之后这个序列存放结果)中, 指针后移, 直到两个序列至少有一个为空, 将不为空的序列复制到存放结果的序列中。步骤:以序列s为例申请空间temp存放结果...

2018-07-30 20:57:49 281

原创 POJ 3278

点击查看题目 题目大意: 给定两个数n和k, 从n到k有n-1, n+1, 2*n三种操作, 求最少需要几步从n走到k 分析 求最短路径, 用BFS 注意:数组开全局数组, 局部数组可能RE注意剪枝, 不然过不了0, 100000这组数据#include&amp;lt;cstdio&amp;gt;#include&amp;lt;queue&amp;gt;#include&amp;lt;cstring&amp;gt...

2018-07-27 15:05:23 237

原创 POJ2251 Dungeon Master(三维BFS)

Dungeon Master点击查看题目 三维搜索 求最短路用BFS(DFS很可能会超时) 搜索过程中注意标记, 防止搜过的结点再次被搜索, 造成超时 #include&amp;lt;cstdio&amp;gt;#include&amp;lt;queue&amp;gt;#include&amp;lt;cstring&amp;gt;using namespace std;struct node{ int...

2018-07-27 14:45:48 110

原创 平面分隔问题

1.n条直线分割平面 f(n) = n*(n+1)/2 + 1 2.折线分割平面 f(n) = 2n^2 - n + 1 3.封闭曲分割平面 设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。 f(n) = n^2-n+2; 4.平面分割空间 f(n) =(n^3+5n)/6+1...

2018-05-30 20:24:04 553

原创 尼姆博弈(Nimm‘s Game)

定义有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。尼姆和:把所有堆中物体的个数进行异或运算 如:n堆物品, 每堆物品个数分别为a[1] a[2]…a[n], 尼姆和=a[1]^a[2]^…a[n] 规则及PN态: 1.取光人的获胜 当尼姆和==0时必败 面临非必败态时采取的策略: 假设 a &amp;amp;amp;amp;lt; b &amp;amp;amp;amp;lt; c,只要将 c...

2018-05-01 14:49:49 1669

原创 威佐夫博弈(Wythoff's game)

定义:有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 奇异局势:必输的局势, 设为(a[k], b[k]), 则a[k] 为前面未出现过的最小整数, b[k]=a[k]+k举例:(0, 0), (1, 2), (3, 5)….. 奇异局势的公式:a[k] =[k(1+√5)/2],bk= ak + k (k=0,...

2018-05-01 14:42:41 230

原创 巴什博弈

定义:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。分析:显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,...

2018-05-01 14:40:55 111

原创 HDU2147 kiki's game

kiki’s game Problem Description Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes the checkerboard game.The size of the chesserboard is n*m.First of a...

2018-04-12 20:37:25 195

原创 HDU3347 Calculate the expression

题目链接#include&lt;cstdio&gt;#include&lt;cstring&gt;using namespace std;struct abc{ int num; char s[25];}abc[1000000];int change(int len, char s[] ){ int ans=0, a, b, c=1; if(s...

2018-03-17 20:51:27 166

原创 素数筛

素数的倍数一定是合数, 用素数的倍数筛掉合数#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;cstring&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;#define

2018-03-15 20:55:11 133

原创 KMP

简介 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息(百度百科)。个人理解 在进行字符串匹配时, 直

2018-01-26 19:37:46 142

原创 SDNU 1166

题目链接1166.不高兴的津津 Time Limit: 1000 MS Memory Limit: 32768 KB Total Submission(s): 115 Accepted Submission(s): 87 Description 津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈

2017-11-23 18:47:49 205

原创 SDNU 1060

1060.找第K大数 Time Limit: 1000 MS Memory Limit: 32768 KB Total Submission(s): 761 Accepted Submission(s): 133 Description 给定 n(1 <= n <= 10000000) 个正整数(<= 2147483647),找出其中**的第K(1 <= K <= 10)大数。

2017-11-22 18:32:47 308

原创 SDNU OJ 1182奖学金

题目链接 http://www.acmicpc.sdnu.edu.cn/problem/show/1182 知识准备 sort函数; 用于C++中,对给定区间所有元素进行排序。头文件是#include 。 Sort函数使用模板: Sort(start,end,排序方法) Sort函数有三个参数: (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序的

2017-10-29 20:42:57 397

空空如也

空空如也

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

TA关注的人

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