自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE MORE TRY

把该做的做好就好了!

  • 博客(82)
  • 问答 (2)
  • 收藏
  • 关注

原创 lightoj刷题日记

yep.

2016-10-16 17:58:14 998

原创 萌新瞎讲网络流之最大流【不定期更新理解篇】

【不定期更新篇】窝总觉得讲这一发网络流算法真的要被人打,首先自己没有理解的非常透彻,然后本文会利用大量的定义和数学语言。。。 基础知识定义:网络是一种特殊的有向图。有向加权图G,指定两个定点S和T,分别称为源和汇。边上的权值称为容量;网络中的一个可行流并不是改路线中所有边的容量的简单相加,这段路线的总承重量受路线中最小容量边的制约。寻找方案使得总运输量最大,这就是网络流

2016-10-13 21:45:32 1337

原创 HDU5950【矩阵快速幂】

主要还是i^4化成一个(i+1)^4没遇到过,还是很基础的一题矩阵快速幂;#include using namespace std;typedef long long LL;const LL mod=2147493647;const int N=1e5+10;struct asd{ LL num[8][8];};asd mul(asd a,asd b){

2016-10-31 22:03:39 520

原创 51nod 1049【经典】

自己模拟,全靠体会~~~#include #include #include #include #include using namespace std;typedef long long LL;const int N=5e4+10;LL a[N];int main(){ int n; scanf("%d",&n); for(int i=1

2016-10-31 21:48:54 499

原创 51nod 1102 【单调栈】

思路:对于这个高度往左能延伸最远x,往右能延伸最远y,(x+1+y)*w;利用单调栈就行了;#include #include #include #include #include using namespace std;typedef long long LL;const int N=5e4+10;struct asd{ LL pre; LL

2016-10-31 20:35:59 370

原创 lightoj 1035【暴力】

思路:预处理一下素数数组,然后暴力计算就好了。类似处理素数因子;#include #include #include #include using namespace std;typedef long long LL;const long long INF=0x3f3f3f3f;const int N=1e2+10;int prime[N],ans[N];bool

2016-10-31 17:49:53 436

原创 lightoj 1034【强连通+缩点】

思路:缩点,计算入度为0点的个数即可;#includeusing namespace std;typedef long long LL;const int N=1e5+10;struct asd{ int to; int next;};asd q[N*4];int head[N*4],tol;int n,m;int dfn[N];int low[N]

2016-10-31 17:46:17 457

原创 LightOJ 1030 【概率DP求期望】

题意:n个格子,每个格子有一个值。从1开始,每次扔6个面的骰子,扔出几点就往前几步,然后把那个格子的金子拿走;如果扔出的骰子+所在位置>n,就重新扔,直到在n;问取走这些值的期望值是多少;思路:【1】 【2】 【3】【4】 【5】 【6】 【7】 【8】 【9】//格子和值都是一样,所以下述的话,值就是格子,格子就是值。。。比如这样的9个格子,我们总底往上来对于第9个格子

2016-10-31 16:34:41 392

原创 LightOJ 1029 【最小生成树】

思路:利用克鲁斯卡尔算法,最小生成树把边从小到大排序,然后Union;最大生成树就是把边从大到小排序,然后Union;#includeusing namespace std;typedef __int64 LL;const int N=15000;struct asd{ int u,v; int w;};asd q[N];int pre[N],n,num

2016-10-31 16:16:48 436

原创 Lightoj1028 【数学-乘法原理】

题意:给你一个数,问你有多少种进制对n的表示,存在后导零;比如30:用3进制表示: 1010思路:我们发现,就是一个数的约数就能对n表示最后存在后导零;计算[2 ,n]之间的n的约数个数。 我们预处理1,大于1说明存在>sqrt(n)的素数,ans*=2,然后乘法原理最后会有一个情况那就是1,最后ans要减1。#include #include #i

2016-10-31 16:11:25 623

原创 51nod 1416【DFS】

思路:暴力整个图,以这个为起点,然后看一下有没有找到一条路是会指向自己且元素个数>=4;#include using namespace std;typedef long long LL;const int mod=1e9+7;const int N=55;char ma[N][N];bool vis[N][N];int n,m;int s,t;int flag;i

2016-10-30 22:33:44 364

原创 lightoj1026【tarjan】

题意:据说就是找桥;思路:

2016-10-30 10:38:03 465

原创 51nod 1011 【完全背包】

完全背包的变形;这些数字可以取多次,dp[i]代表前 i 物品组成N时的方案数。#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int mod=1e9+7;int w[13]={1,2,5,10

2016-10-29 22:29:48 416

原创 2016年中国大学生程序设计竞赛(杭州)-重现赛【01,02,03,06】

说些感触。= =、哎,说起来重现还真是好气啊。出去的大二过去两题打铁,今天我们队边玩边打过了4题,有点不甘心啊。= =、对教练略无奈。-------------------------比赛经验:今天一开始,我洗完澡回来,比赛已经开始15分钟了,yhp和zmy都还在看题意,然后zmy在我来的时候已经在敲02了(其实是03,他说是02),然后我就和yhp讨论01,01yhp说完题意

2016-10-29 19:18:57 647

原创 51nod 1376【线段树维护区间最大值】

引自:wonter巨巨的博客定义 dp[i] := 以数字 i(不是下标 i)为结尾的最长上升长度然后用线段树维护 dp[i]:每个节点维护 2 个信息,一个是当前区间的最大上升长度,一个是最大上升长度的方案数,这里再详细说下这篇题解。。。也是弱弱自己的理解吧。。。以1-n的值为线段树所代表的区间;然后依次更新,题目就是要找上升序列,那么我们只要每次查询0~arr[

2016-10-28 12:47:44 510

原创 离散化操作

先说两个函数unique函数:去重函数使用方法:unique (首地址,尾地址);功能:去除相邻的重复元素(只保留一个),并把重复的元素放在最后;unique 是返回去重后的尾地址;lower_bound() 函数,在前闭后开区间进行二分查找lower_bound() 是返回>=val 的位置,当所有元素都小于val,返回last位置;使用方法:lower_bo

2016-10-28 10:05:56 2966

原创 HDU4973 【几何。】

题意:给你一个以原点为圆心的两个圆,一个大圆,一个小圆,然后给你一个硬币和他的速度,问你经过大圆的时间;思路:直接杠。。然后wa的怀疑人生,后面wa在了速度的方向,如果我说一个点在两个圆的左上方,那么速度也是左上方,那么就是0;其他都还简单;贴一发比赛时的挫代码。。。#include #include #include #include #include #i

2016-10-27 22:00:54 383

原创 HDU4791【杂】

题意:给你一个从0开始的区间si,每个区间是前闭后开,[ s[i] , s[i+1] ), 然后再给你个一个pi,代表你在区间[ s[i] , s[i+1] )里面买东西的单价是pi,给出的s1一定是0,给出的顺序是s1,p1,s2,p2...sk,pk,...sn,pn。然后给你个m个值,然后计算买了>=b[m]个物品需要花费的最少值;思路:预处理一下,买si个物品需要的花费,用个数

2016-10-27 21:55:32 384

原创 HDU4801【DFS】

题意: 给你一个2阶魔方,给你24个数代表颜色,然后让你求在思路:就是一个DFS嘛,就是怎么转搞出来;上面:   22 234 0   1  95 2   3  8    6   7前侧:      2  35    6  7    811 12 13 14      16 17左侧:      0     222  4

2016-10-27 21:17:23 493

原创 萌新学习图的强连通(Tarjan算法)笔记

--主要摘自北京大学暑期课《ACM/ICPC竞赛训练》 在有向图G中,如果任意两个不同顶点相互可达,则称该有向图是强连通的;有向图G的极大强连通子图称为G的强连通分支; 转制图的定义:将有向图G中的每一条边反向形成的图称为G 的转置GT 。 做一遍DFS,Dfn[ i ] 表示节点i 在DFS过程中的访问序号(也可以叫做开始时间)。Low[ i ]表示从i

2016-10-27 10:23:57 610

原创 Lightoj 1021【状压DP(未搞)】

状态压缩一下,然后DP还是很容易想到,dp[i][j]表示状态为i时,模 k 为 j 的排列数的个数,然后每次对一个状态扩展,添加新的数字;然而那个取膜没懂。。。。。

2016-10-25 11:28:34 312

原创 Lightoj 1008【规律】

2524 2322 2110111213209871419236151814516

2016-10-25 11:22:34 377

原创 CodeForces Canada Cup 2016【A,B,C,D】

CodeForces 725A:思路就是如果“最左”不是‘>’这个了,那么这个右边的一定不可能到达左边了;同理最右;CodeForces 725B:有两个空姐,一个从第1行开始照顾1,2两行;另一个从第二行开始照顾3,4两行,对每个乘客,给他东西需要1个单位时间,换一行需要一个单位时间;然后两个空姐同时处理,对每一行都是fed,abc,然后换行,两个空姐同时处理完两行以后,跳两行继

2016-10-24 21:03:11 481

原创 51nod 1068【简单博弈】

思路手动打表,N1 : A出1 A胜;2 : A出2 A胜;3 : A只能出2的整数幂&&这个数4 : A只能出2的整数幂&&这个数5 : A只能出2的整数幂&&这个数6 : B胜(解释略);...最后会发现A不管怎么取也不会达到3的倍数,所以A赢两次后的第三次中,不可能取完以后,留给B是对方能赢(即A能赢)的阵式;

2016-10-23 19:36:53 457

原创 51nod 1067【简单博弈】

卧槽,第一次自己推推推做出来的。。。对于1,那么就是A取完就好 --A对于2,只能是A拿一个 --B对于3和4,都是A拿完 --A对于5,靠向2,A取3,B只能1 --A对于6,A取一个的话,B就是5的情况,B赢,取3个的话,B就是3的情况,B赢,取4个的话,B就是2的情况,A赢,所以A;对于7,A取一个的话,B就是6的情况,B赢,取3个的话,B就是4的情况,B赢,取4个的

2016-10-20 12:59:30 431

原创 LightOJ 1023

利用STL的next_perputation就非常方便next_permutation使数列逐次增大,这个递增过程按照字典序。返回值:如果有一个更高的排列,它重新排列元素,并返回true;如果这是不可能的(因为它已经在最大可能的排列),它按升序排列重新元素,并返回false。#include#include#include#include#include#include

2016-10-20 12:11:25 343

原创 LightOJ 1022 【读题】

求阴影面积;犯了两个错误,漏看了两个条件。第一个wa:题面中PI说要取pi = 2 * acos (0.0) 第二个wa: For example, add 10-9 to your result.这些在比赛中都是输不起的;题面一旦大致懂了,要注重细节了,细节也会决定成败#include#include#include#include#include#in

2016-10-20 12:06:52 95

原创 Codeforces Round #377 (Div. 2)A,B,C,D【二分】

Codeforces732A水题;#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e9+7;int main(){

2016-10-19 12:43:03 413

原创 Lightoj1015【基础题】

题意:计算输入数>0的所有和;思路:直接干。。。#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e9+7;const int N=1e3+

2016-10-17 22:30:09 394

原创 Lightoj1014【基础题】

题意:有C个人,安排了P个吃的,每个人会吃Q个吃的,最后留下L个吃的;求所有可能的Q,从小到大输出,要保证Q>L;思路:其实就是求出P-L的所有数的约数,然后这个约数>L的话就满足;#include#include#include#include#include#include#include#includeusing namespace std;typedef

2016-10-17 22:28:19 379

原创 Lightoj1011【KM算法】

题意:问男孩女孩最大的可能值?其实就是一个二分图的最大权值匹配问题;模板题吧。。#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e

2016-10-17 22:24:07 477

原创 Lightoj1012【DFS】

题意:输出和' @ '相连有多少个' . '包括' @ ',' # '代表墙不能走;思路:基础DFS,找到起点,然后跑一下DFS就好了;#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f

2016-10-17 22:21:52 279

原创 Lightoj1013【DP_LCS】

题意:给你两个字符串,让你求一个最短字符串,其中存在给出串的种类;求这个字符串的长度和种类;思路://dp[i,j,k]表示前i个字符,包含s1串前j个字母,包含s2串前k个字符时的方案数。//按照一定的顺序,碰到相同元素只会留一个,不同元素这个位置就有两种情况#include#include#include#include#include#inclu

2016-10-17 22:18:29 377

原创 lightoj1004【基础DP】

从低端到顶端求个最大值;思路:基础DP,递推#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e9+7; int a[110][110];i

2016-10-16 22:35:18 380

原创 lightoj1006【记忆化搜索(我是这么叫)】

搜索的时候记录一下,注意要long long;#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e9+7; bool vis[10010];LL f

2016-10-16 22:33:51 109

原创 URAL1222

题意:把n拆分成几个数,把这些数乘起来最大。思路:3越多越好。对4,5特判一下,4的时候是2*2大,5的时候还剩个2,那么就是n%3=1的话,我们先拿个4,n%3==2的话就是先拿个2,后面把有多少个3乘起来就好了;#include #include using namespace std;#define maxn 3022int n, step;int ans[ma

2016-10-16 20:05:09 258

原创 Lightoj1003【判环操作】

题意:对于n个给出字符串a,b,理解成a在b之前办好这个事情,要求n个给出两个串,a都要在b之前完成;题意:所以一旦出现环就不行了;以前在写最短路的时候,spfa就有一个判环,后来写着写着写到了拓扑排序。。。。。判环就好了;#include#include#include#include#include#include#includeusing namespace

2016-10-16 19:56:13 348

原创 Lightoj1002 【搜索】

题意:两两之间的点的花费就是:从A点到B的一条路上某段的最大权值;给一个起点,求到各起点的最小花费。思路:一开始的思路:n不是才500,我先建个图,然后DFS一下,不对,是2500;如果直接暴搜,肯定T了。因为可能有一个环,然后你不能处理一个节点的向上节点。= =、T在这里,所以每次暴搜就相当于每次暴搜了整幅图;一开始写了一发,还以为再一次深刻理解DFS,然后T的我一脸懵逼

2016-10-16 19:46:24 630

原创 lightoj1001【简单题】

题意:一个人的值不能超过10;#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e9+7; int main(){ int T,cas=1; int n;

2016-10-16 19:40:59 669

原创 Lightoj1000【简单A+B】

balababalabalabala!#include#include#include#include#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const LL mod=1e9+7; int main(){ int T,cas=1; int a,b;

2016-10-16 19:39:27 410

空空如也

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

TA关注的人

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