- 博客(232)
- 收藏
- 关注

原创 板子
大数java大数a+b:http://blog.youkuaiyun.com/zxy160/article/details/79583252 java大数a-b:http://blog.youkuaiyun.com/zxy160/article/details/79584460 java大数a*b:http://blog.youkuaiyun.com/zxy160/article/details/79584050 java...
2018-01-24 15:46:15
609
原创 leetcode刷题DP
word-break遍历每个区间能不能分,a[i]表示[0,i)之间能不能分class Solution {public: bool wordBreak(string s, unordered_set<string> &dict) { int len=s.size(); vector<bool>a(len+1,false...
2020-03-01 15:36:54
267
1
原创 leetcode刷题日记
1.树-Minimum Depth of Binary Tree求二叉树最小深度注意是最小深度,不是最大class Solution {public: int run(TreeNode *root) { if(root==NULL) return 0; int ans=1; queue<TreeNode*&...
2020-02-27 17:01:58
232
原创 差分 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final 2017)(J题)
http://codeforces.com/gym/101775/problem/J差分就是将一串数分别于前一个数做差,例如:一个序列1 2 5 4 7 3,差分后得到1 1 3 -1 3 -4 -3这里注意得到的差分序列第一个数和原来的第一个数一样(相当于第一个数减0)差分序列最后比原序列多一个数(相当于0减最后一个数)性质:1、差分序列求前缀和可得原序列2、将原序列区间[L,R]...
2018-11-15 19:23:43
424
2
原创 牛客小白月赛7 B自杀游戏(sg博弈)
sg博弈结论为,下个状态sg的补集的最小值。题目#include<bits/stdc++.h>using namespace std;const int maxn=1e5+9;bool book[15];int sg[maxn];int main(){ int t,a,b; scanf("%d%d%d",&t,&a,&b); ...
2018-09-18 10:46:57
316
原创 抽签原理
箱子中a个黑球,b个白球,求第k次摸出黑球的概率。 (1)对于有放回的。每次都是在a+b个球中任取一个,因此第k次取球有a+b种方法,而第k次取出黑球的方法有a种,所以 概率为p=a/(a+b)。 (2)对于无放回的。把a+b个球摸出来,一共有(a+b)!种方式,而第k次是黑球的方式为 a*(a+b-1)!种方法,所以概率为 p=a*(a+b-1)!/(a+b)!=a/(a+b)...
2018-08-20 17:53:13
14321
原创 hdu6375 度度熊学队列
直接用list#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=150005;void read(int &amp;x){ char ch = getchar();x = 0; for (; ch &lt; '0' || ch &gt; '9'; ch = getchar()); f...
2018-08-11 17:52:06
268
转载 基环树
一、基环树首先什么是树就不解释了,如果这都不知道,应该也接触不到基环树吧在了解了树的基础上来解释基环树——树加一条边使之成环(也就是说,在严格意义上来说,基环树并不是树,就像老婆饼没有老婆一样,基环树是个图) 二、基环内向树首先它是一个有向图,它构成类似基环树的结构,有一个特点是每个点都有且只有一个出度,并且环外的节点方向指向环内 三、基环外向树与基环内向树相反,它有且...
2018-08-09 14:45:45
714
原创 hdu6358 Glad You Came
题意:首先一个长度为n的a数组,全为0。一个长度为3m的b数组,通过题目给的随机生成,然后根据题目给出的公式,区间【l,r】和一个数v对于区间内的数a【i】=max(a【i】,v),计算出a[i]的每个值,然后求与i的异或和。 正解是用反向RMQ,更新每段区间,然后压到每一项上。#include <cstdio>#include <cstring>#include...
2018-08-07 16:37:36
275
原创 hdu 6341 Problem J. Let Sudoku Rotate
直接暴力搜+可行性剪枝。具体看代码,注意:顺时针旋转#include<bits/stdc++.h>using namespace std;int vis[20];char s[20][20];int a[20][20],b[20][20];int ans;void ro(int x,int y){ for(int i=x;i<x+4;i++) ...
2018-08-02 15:10:32
188
原创 二分图-多重匹配
poj2289 二分图匹配一个点只能匹配一个,但是多重匹配能匹配多个,只要改变限制条件就可以了,先判断这个点匹配的数量有没有达到它自身或二分mid的限制,如果达到限制可以从匹配的点中选取能转移的匹配点。//感觉kuangbin板子上的代码太费时了,还是自己写的好#include<stdio.h>#include<sstream>#include<str...
2018-07-16 18:24:53
1275
原创 P3384 【模板】树链剖分
P3384 【模板】树链剖分 树链剖分是把一棵树划分成几条链,这几条链又能组成数组,然后把数组建成线段树,继而相当于在树树上操作。#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>using na...
2018-07-14 16:16:25
234
原创 主席树-可持久化线段树
首先要学会普通的线段树,然后理解权值线段树,而主席树就是多个权值线段树(我自己的理解),但是这多个权值线段树之间有公共部分,节约了空间。它一开始是一个空树,后来逐个添数,记录添加的这个数在那个范围内,并+1,显然它每次只更新了一条链,其他不需要变,这样就有了多个版本的线段树。如果求[l,r]范围内第k大个数,那么只需要在T[l]-T[r+1]的线段树中寻找第K个数的位置即可。 poj2104...
2018-07-13 16:48:55
230
原创 java记事本
import java.awt.*; //这里主要是使用基础图形和 eventqueueimport java.awt.event.*;import java.util.*;import java.io.*; //文件流。(这里使用字符流,以及异常)import javax.swing.*; //非基础类 绘图和交互等。 swing 比a...
2018-06-27 17:37:38
333
原创 01分数规划(三种题型)
学习链接 最普通的01分数规划 poj2976#include&lt;stdio.h&gt;#include&lt;math.h&gt;#include&lt;string.h&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;using namespace std;type
2018-05-18 16:29:45
975
原创 表达式求值简单类型总结
nyoj35 表达式求值/*21.000+2/4=((1+2)*5+1)/4=*/#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include&amp;amp;amp;lt;string.h&amp;amp;amp;gt;#include&amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt;#include&a
2018-05-04 21:24:53
354
原创 nyoj 188-Arbitrage
nyoj 188-Arbitrage 题意读错了,以为是检查给出的是否符合条件。真的题意是确定套利行为是否可行! 每个点做为起点跑一次spfa看是否变大了即可。#include<stdio.h>#include<math.h>#include<string.h>#include<string>#include<queue&g...
2018-05-03 14:38:34
208
原创 ZOJ 3336
ZOJ 3336 题意:中文题,不再陈述。 思路。仔细思考,首先你会发现将末尾的数字-1加到前一位即可。比如21,答案应该为30.然后再思考会发现99这种情况。答案应该为189.顺势 就会想到9900这种情况。答案为10089.所以你会发现-1还不够。我们应该从尾开始找找到一个不为0的数,-1.再往前找,找到一个不为9的数字 +1.设找到的这个不为9的数字的位置为pos,将pos到尾的数字...
2018-05-01 15:43:38
207
原创 51Nod 1521
51Nod 1521 中文题,题意不说了。 思路:先看初始区间能装多少战舰,如果能就把初始范围0~(n+1)放入set中,然后依次把判断的点加入set,每加入一个,用lower_bound找出左右区间,ans-老区间能装多少个+新的两个区间能装多少个。set用lower_bound要这样用s.lower_bound(b[i]),用lower_bound(s.begin(),s.end(),b[...
2018-05-01 15:18:54
223
原创 POJ 1002
POJ 1002 C:题意 给你一个n。然后后n行。每行一个字符串。字母+数字的个数是7个。-不考虑。如果是字母的话就通过表映射。A-B-C映射 为2…….然后求这n行相同数字的个数。如果相同数字个数>=2就输出出来,并输出个数。 思路;很简单,直接将每一行的7个数字转换为10进制的数,存到数组里。sort一遍。找出相同的个数即可。按照输出的格式再输出即可 ,大水题,没时间做了#...
2018-05-01 14:47:21
214
原创 Codeforces Round #477 (rated, Div. 1, based on VK Cup 2018 Round 3) A. Stairs and Elevators
题目 题意:给出n层楼,每层m个房间,楼梯和电梯的分布这样的(1,x),(2,x)…,(n,x),1<=x<=m,楼梯c1,电梯c2,电梯的速度为v。给出起始点和终点,问最快的速度。 解法:其实很简单,算出走楼梯和电梯的四种情况,然后取最小值即可,记得同一楼层的情况。 状态不好,写了一堆bug#include<bits/stdc++.h>using namesp...
2018-04-30 16:48:59
293
原创 ZOJ 3939。规律题
规律题。400年一个大闰年一循环。次数2058一循环。打表得出规律。直接模拟求出即可#include <bits/stdc++.h>using namespace std;typedef long long ll;#define inf 0x3f3f3f3f3f3f3f3fconst int maxn=1e5+9;#define mem(aa,bb) memset(aa,...
2018-04-28 16:55:16
212
原创 2018年湘潭大学程序设计竞赛 G又见斐波那契
又见斐波那契 构造矩阵进行矩阵快速幂。 主要是(i+1^k那里花点心思,把(i+1)拆开后相乘即可。 比如3^3=3*3*3=(2+1)(2+1)(2+1)=2^3+3*2^2+3*2^2+1 所以构造的矩阵为1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,3,3,1,0,0,0,1,2,1,0,0,0,0,1,1,0,0,0,0,0,1#includ...
2018-04-27 20:29:40
227
原创 hdu5701
hdu5701 题目:给你一个乱序的序列,问它现在所在区间是否为中位数,如果是,那么这样的区间有几个。 思路:位置i有一个数是a[i],现在只向左遍历这个区间如果如果比它打和比它小的一样多,那么ans++,那么只向右遍历也是这样。如果向两边遍历,想遍历完一边,再遍历另一边,如果另的一边比a[i]小的和那边比a[i]大的一样多,那么就会ans++。#include<stdio.h&...
2018-04-27 17:25:17
212
原创 E Byteland, Berland and Disputed Cities
E Byteland, Berland and Disputed Cities 题意:给你1,2,3,三种点,使其排列在x轴上,去掉点1后使其2,3点完全联通,去掉点2后使其1,3点完全联通,问最短需要多长。 思路:1和2两个点不用连,连了也得去掉。 那么如果只有一个3点,我们把3点看成1点,按顺序连一遍即可,同样2点也是如此。 如果有两个3点,那么第一个3点的最左面相同点挨着连即可,...
2018-04-25 19:54:51
241
原创 D. Destruction of a Tree
D. Destruction of a Tree 题意:给你n个点,n-1条边连通整个图,每次删除度数为偶数的点,问是否能找出答案。 解法:偶数个点肯定不行。奇数个点,对于每个父亲儿子来说, 如果儿子的子树的大小为奇数, 那么肯定先删父亲, 反之先删儿子, 建立关系图, 跑一遍拓扑序就好啦。#include <bits/stdc++.h>using namespace s...
2018-04-25 16:06:11
288
原创 ZOJ 3780 Paint the Grid Again
ZOJ 3780 Paint the Grid Again 题意:输入一个t,代表t组样例。下一行跟一个n.给你一个n*n的图。问由一个空白图能不能变成这个图。每行我可以涂成X,但是每行只能涂一次 每列我可以涂成O,每列也只能涂一次。后涂的会覆盖以前涂的。比如样例1.先把第2行全涂成X,再把第一列全涂成O,再把第一行全涂成X。 思路:我们可以倒着思考。最后涂的那一次,一定是一整行X或一整...
2018-04-24 20:23:18
160
原创 尼姆博弈
Nim游戏 重点结论:对于一个Nim游戏的局面(a1,a2,…,an),它是P-position(先手必败)当且仅当a1^a2^…^an=0,其中^表示位异或(xor)运算。 SG函数 从一个有向无环图的走法逐渐推向NIM游戏的局面。 所谓的SG值就把大游戏分成几个小游戏所求出的值,然后经过异或运算得出胜负。 学习链接:https://blog.youkuaiyun.com/strangedbly/...
2018-04-23 19:23:31
495
原创 zzuli 1728: 社交网络(组合数打表)
zzuli 1728: 社交网络 题意:中文题,不多说。 解法:先组合数打表,打一个c[30][30]的表记录一下。假设一个点是女的,那么与她相连的点为kk个,那么kk中选出k~kk个为男的那么就是C(kk,k~kk),分母为2的kk次方,又因为多枚举了一个男女的情况,所以除2.#include<stdio.h>#include<string.h>#incl...
2018-04-21 21:01:02
233
原创 LightOJ - 1002(迪杰斯特拉求最大之的最小值)
LightOJ - 1002 题意:求s点到t点所有路径中最大值的最小值(简单化了)。 解法:迪杰斯特拉求相同路径上的最大值,不同路径上的最小值。#include<stdio.h>#include<string.h>#include<queue>#include<map>#include<iostream>#incl...
2018-04-21 18:49:00
250
原创 CodeForces 546D
CodeForces 546D 求n的质因子数量。 平常的做法就是这样的int solve(int n){ int ans=0; for(int i=2;i<=n;i++) { if(n%i==0) { while(n%i==0) { ans+...
2018-04-21 08:30:15
155
原创 CodeForces 551C
CodeForces 551C 题意有一个教授要走一条路,但是一条路上堆了很多箱子。这个教授有很多学生,问学生把这条路上的箱子全部搬完需要多长时间。 每个学生在每秒都可以在做出两个选择,搬掉一个箱子,向前走一步。 比如第二个样例。3 2 1 0 2;两个学生都走到第一堆花费1秒。第一个学生搬掉第一堆的一个箱子,第二个学生向前走一步,花费一秒。 第2个学生向...
2018-04-20 16:44:36
264
原创 fzu Problem 2150 Fire Game
Problem 2150 Fire Game 题意:找两个起火点,把草烧完,求最短时间,如果烧不完,输出-1 思路:先找到草堆数目,然后暴力枚举任意两个点。水题,还以为会超时呢#include<stdio.h>#include<string.h>#include<queue>#include<iostream>#include&l...
2018-04-20 10:29:24
137
原创 hdu4268 Alice and Bob(贪心+set)
hdu4268 题意:A和B两个人各有n个矩形板子,当A的板子的长>=B的板子的长&&A的板子的宽>=B的板子的宽时,则是覆盖,求最大能覆盖的数量。 题解:两个序列的长都从小到大排序,然后从B中找出满足小于等于A的第i板子的长,先满足一个条件,塞到multiset里,再找出满足第一个条件后set中最大的宽,ans++。遍历完所有的A板子即可。 set:排序+去重 ...
2018-04-18 21:11:10
191
原创 hdu4638 Group(莫对算法)
hdu4638 题意:第一行输入一个t。t组数据. 第二行n,m。n代表n个数字.m代表询问m次。 第三行输入n个数字. 接下来m行。每行l,r。代表需要查询的区间。 查询的是l-r区间内有几段连续的数字。 eg:1-5 有数字3 1 2 5 4.排一下序:1 2 3 4 5.连续。所以输出1。 2-4 有数字1 2 5 4.排一下序:1 2 5,1 2连续,5连续。所以输出2...
2018-04-18 16:25:30
373
原创 HDU 1251 统计难题
HDU 1251 中文题意,不再说了。 字典树裸题,比赛时用的指针实现的导致MLE||RE很难受。赛后套了一下数组实现的直接A了。思想大家也理解了。具体 说一下数组如何实现。//ZQW写法#include <iostream>#include <string.h>#include <stdio.h>#include <algorith...
2018-04-17 20:28:48
190
原创 POJ 2421 Constructing Roads
POJ 2421 读题错误,认为是给出q次询问,每次算出u到v的路径上的最小路。 真正题意是,给出q对点,表示这q对已经联通,然后再求联通其他点所需的路径长度。 最小生成树prime模板,只要把联通的点变成0即可。#include<stdio.h>#include<string.h>#include<iostream>using namesp...
2018-04-17 20:21:01
185
转载 威佐夫博奕
转自:https://blog.youkuaiyun.com/y990041769/article/details/21694007 威佐夫博弈是博弈中的另一个经典模型。问题:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。分析:首先我们根据条件来分析博弈中的奇异局势第一个(0 , 0),先手输,当游戏某一方面对( 0 , 0)时,他没有办法...
2018-04-16 20:59:00
317
原创 巴什博弈
个人理解: 假设现在有n=m+1个石子,有两个人a和b,a先拿,最多拿m个,谁先取完谁胜。两个人都很聪明,问谁会取胜。很明显无论a拿多少(假如为k),那么b肯定会把剩下的都拿走n-k<=m。b胜! 假设现在n!=m+1,那么结果又会如何?那么我们可以把n=(m+1)r+s,a拿走s个,然后b拿走k个,a再拿走(m+1)-k个,那么剩n=(m+1)(r-1)个,保持这样,a一定取胜。所以如...
2018-04-16 19:29:16
147
原创 Problem C. GSS and Bubble Sort
Problem C. GSS and Bubble Sort Input file: standard input Output file: standard output Time limit: 1 seconds Memory limit: 512 mebibytes Do you remember the problem “Time Limit Exceeded” last yea...
2018-04-16 16:48:04
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人