自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bryant03的专栏

以现在的努力程度,谈狗屁的成功,屎的未来!新博客 izihan.cf

  • 博客(38)
  • 收藏
  • 关注

原创 最大权闭合图小结

最大权闭合图昨天在做多校联赛的时候偶然碰上的,学习了下这个,首先推荐胡伯涛的《最小割模型在信息学竞赛中的应用》。定义 一个有向图 的闭合图(closure)G=(V,E)G= (V , E)是该有向图的一个点集,且该点集的所有出边都还指向该点集。即闭合图内的任意点的任意后继也一定在闭合图中。更形式化地说,闭合图是这样的一个点集V′∈V{V}'\in {V} ,满足对于 ∀u∈V\f

2016-08-18 11:59:50 432

原创 zoj1245

一开始用的是暴力的方法,但是老是WA,后来看了看竟然是简单DP#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>#include <vector>using nam

2016-05-06 15:45:26 390

原创 zoj1144

#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>#include <vector>using namespace std;#define N 500010#de

2016-05-06 14:39:28 678

原创 Hdu_5153_容斥原理

挺忙的,改天回来再写题解#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>#include <vector>using namespace std;#define

2016-04-20 23:11:01 435

原创 ZOJ1827博弈水题

都怪我太菜,这么水的题我竟然没做出来,亏我之前还特意看过博弈论/*ID: CaoLeiPROG: a.cppLANG: C++一个状态是必败态当且仅当所有的后记状态都是必胜态一个状态是必胜态当且仅当他至少有一个后继状态是必败态没有后继状态的是必败态*/#include <cstdio>#include <iostream>#include <cstring>#include <al

2016-04-08 13:43:02 387

原创 codeforces 629C

//我们将题意修改一下,如果出现左括号,则对平衡值加一,如果出现右括号则把平衡值建议。//那么我们的条件就变成时刻保持平衡值为非负,并且保证最后平衡值为零//假设dp[i][j]表示长度为i的字符串平衡值为j的时候的情况个数,并且满足中间过程中不会出现//平衡值小于零的情况。那么我们的解法就是先计算dp[i][j],然后枚举左边字符串的i,j,如果满足//if(j+minn>=0&&j+tm

2016-02-27 23:21:19 565

原创 hdu_5634

直接用线段树就可以做,#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>#include <vector>using namespace std;#define N

2016-02-23 13:42:24 596

原创 机器学习笔记(一)——环境安装

最近一直在坑人工神经网络与人脸年龄估计,本来我是基于python3.5.1自己一点一点搭的环境,中间缺少了什么就坑什么,最后发现这个版本实在太不成熟了,很多配套的模块文件都没更新,所以换成2.7.x,但是发现在配置theano实在恶心的不行,所以选择了科学计算环境Anaconda,这里面自带了python,同时还已经配置好了很多模块,所以我是按照这个配置使用的。 Anaconda下载地址 http

2016-02-08 22:26:25 816

原创 HDU_5617Jam's maze

这道题一开始看起来确实有点蒙,首先想到的就是DP,这个矩阵太明显了,但是不是很清楚状态转移方程应该怎么搞,而且数据量有点大。 其实可以这么理解,让(1,1)和(n,n)同时向中间走,在中间汇合,定义f[x1][y1][y1][y2]为从初始点到(x1,y1)(x2,y2)两点时,构成的子串相同的方案数,例如在题目样例中,f[1][2][3][4]就应该等于1,因为同时构成”AB”这个子串,好的那么

2016-01-31 15:46:20 663

原创 2015CCPC题目总结(小菜持续更新)

现场赛教练嫌弃我们渣,没让我们去,没办法,小菜只能赛后开了场,DP略虚,也只能拿个铜。 hdu5540 给你两个2X2矩阵,可以旋转,判断是否相等,水之#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <ma

2015-11-17 17:36:10 5827 1

原创 次小生成树

顾名思义,次小生成树就是第二小的生成树,当然,若果这个树的最小生成树不唯一的话,次小生成树和最小生成树是一样大的。 结论:次小生成树可以由最小生成树换一条边得到(重点)。 首先我们知道,一棵生成树可以通过更换一条边得到另外一棵生成树。假设任意一棵树T0变为最小生成树Tn,过程为T0–>T1–>T2–>–>Tn-1–>Tn。 1.在Ti中选取任意一条不在Tn中的边

2015-08-28 20:48:20 725

原创 hdu_3547

发现最近题目老是看不下去呀,英语要加强了,六级还是抓紧考过吧,丢人了。这道题目的意思是,给你一个正方体,然后让你正方形的八个顶点涂色,看看有多少种经过翻转后也不相同的情况。 解析:肯定还是要用到polya定理了,这里的关键在与分析有多少种置换的状态: 1.绕着相互对立的两个面旋转,有90度,180度,270度,所以总共有3*3=9种情况。 2.绕着相互对立的两个边旋转,有180度这样,所以总共

2015-08-26 19:54:16 901

原创 poj_2154

polya+euler+素数优化=1200ms+/*ID: CaoLeiPROG: poj_2154.cppLANG: C++*/#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#includ

2015-08-26 14:32:06 2760 8

原创 组合数重点整理

总结下最近刷过的关于组合数的题目,以供以后复习参考。 首先要介绍的就是lucas定理,这也是组合数中重点中的重点。 同时,因为我们也经常要遇到关于取模的运算,所以关于逆元的概念也必不可少。 好了,接下来就是通过解决实际问题,来实践了。 1.hdu3037 解析:通过隔板法,求C(n+m , m )% p即可,这里我们就需要用到lucas定理了,注意,我们一般会预处理一些所需

2015-08-25 00:20:47 978

原创 hdu_5551_多校联赛5_1009

把表打出来一部分,轻松找到规律即可。 import java.util.Scanner;import java.math.BigInteger;import java.math.BigDecimal;public class Main{ public static void main(String []args){ Scanner cin=new Scanner(Sy

2015-08-04 22:06:56 554

原创 poj_2773

题目的愿意很简单,给你一个n,求在升序排列的情况下,第k个与之相互素的数。 解法:首先我们要知道gcd(b×t+a,b)=gcd(a,b),那么接下来就很简单了,所有与之互素的数都是以phi(n),为周期的,所以暴力求解即可。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include

2015-08-03 00:20:02 928

原创 hdu_2817_快速幂

水~#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace std;#define MAX(x,y) (((x)>(y))?(x):(y))#define MIN(x,y)

2015-08-02 00:37:50 748

原创 poj_3090_欧拉函数

水,只需要知道(X,Y)点为端点对应的线上的点的个数是gcd(x,y)+1(这里包含了两个端点),知道之后就欧拉函数走起#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace

2015-08-01 13:50:56 675

原创 poj_2478_欧拉函数

裸,欧拉打表水过#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>#include <cmath>using namespace std;#define MAX(x,y) (((x)>(y))?(x

2015-08-01 12:32:43 667

原创 poj_2407_欧拉函数

水,裸欧拉函数。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <cmath>#include <map>using namespace std;#define MAX(x,y) (((x)>(y))?(x

2015-08-01 12:14:57 735

原创 poj_1284_原根

一开始看题的时候第一想法就是暴力,但是无奈数据量有点大,看了题解之后才知道原来牵扯到数论上的一个叫做原根的东西,这个题的题意就是,给你一个奇素数,问题他的原根有多少,根据初等数论上所说,此时牵扯到了三个定理。 1)所有的单素数都是有原根的 2)一个数n有原根,那么他有phi(phi(n))个模n不同余的原根(n是否素数都可用) 3)一个素数有原根,则有phi(n-1)个原根 其中3是由1,2

2015-08-01 11:55:20 695

原创 poj_2480

#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace std;#define MAX(x,y) (((x)>(y))?(x):(y))#define MIN(x,y) (

2015-08-01 00:03:16 687

原创 hdu_5536_多校联赛4_1010

啊啊啊,简直要崩溃,题意是说有很多大水滴,当大水滴尺寸>=5时,会分裂成四个小水滴,然后向上下左右四个方向射去,当碰到另一个大水滴时就会融合到里面去,问你T时刻的状态。 思路极为简单的模拟,只需要模拟小水滴的状态就行,但是当时比赛现场管理员有很多误导,导致很多人不能够正确理解题意,首先,R为X的范围,C为Y的范围,admin直接说反,爆WA,其次,当大水滴分裂之后,原地点的状态表述不明,既然SIZ

2015-07-31 22:27:59 542 1

原创 poj_1877

这个题坑极多,附代码和测试数据,如果测试数据都过了,基本上就能AC了,希望对大家有所帮助#include <stdio.h>#include <stdlib.h>#include <string.h>int cmp(const void*a, const void*b){ return *(int*)a - *(int*)b;}int main(){ int m, n,

2015-07-27 23:51:26 763

原创 zoj_3888_7/27浙大月赛H

简单贪心,只需要维护每一个点可以到达之前的最小值和次小值。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <set>#include <queue>#include <map>using namespace std;#define MAX(x,y) (((x)>(y)

2015-07-27 23:19:32 992

原创 zoj_3882_7/27浙大月赛B

这道题不得不说是一道水题,只要你看过刘汝佳的白书的话,相信秒杀还是没问题的,题意是A和B两个人玩游戏,有1~n一堆数,每个人轮流从中取走一个数,并把他和他的所有的约数擦去。擦去最后一个数的人赢,A先开始,问谁会赢。 分析:本题的结论有些出乎意料,除了n=0是先手必败之外,其他的情况都是先手必胜。证明如下。 如果后手能赢,也就是后手有必胜策略,使得先手无论去哪第一次取哪一个数,后手都能获得最后的胜

2015-07-27 23:14:48 645

原创 poj_1753_高斯消元

开心,总算过了,对于高斯消元的理解更深一步,这道题的重点在于,如果用高斯消元的话,最后一行是要枚举的,总共16种情况,因为不知道怎么枚举,当时卡了好久,其实在线性方程组中,我们可以当做缺少了四个方程,所以我们的过程就是枚举最后四个方程,然后一步一步往回带入。其中要注意一点,就是最后的结果可以全是白面,也可以全是黑面,看了很多博客,说的解法都很麻烦,其实大可以不必,只要a数组加两列就行,将枚举的结果

2015-07-21 20:29:38 460

原创 poj_1681_高斯消元

这道题和之前的把那一道1222非常相似,只不过一定要注意一下对于无解的判断。/*########################################################################## File Name: poj_1681.cpp# Author: CaoLei# Created Time: 2015/7/20 18:33:08#########

2015-07-20 21:41:36 684

原创 poj_1222_高斯消元

第一次学习使用高斯消元,将灯板化为线性方程组,进行求解/*########################################################################## File Name: poj_1222.cpp# Author: CaoLei# Created Time: 2015/7/20 15:48:04####################

2015-07-20 17:27:10 505

原创 zoj 3643 Keep Deleting

思路:KMP+堆栈,很巧妙的思路,用栈记录下每一次匹配成功时候的位置,当完全匹配成功的时候,就弹出相应程度的堆栈内容,原来一直错的地方在于,每次放到堆栈里的是陪陪失败后的位置,但是那样的话会有重复的情况,所以应该果断换一种算法。/*########################################################################## Fi

2015-07-15 21:01:37 504

原创 zoj 3640 Help Me Escape

比赛的时候因为害怕复杂度太高所以并没有用搜索,后来想想其实是可以的,但是一定要注意记忆化,要避免重复搜索的情况,感谢提供思路的kuangbin大神。/*########################################################################## File Name: h.cpp# Author: CaoLei# Created Ti

2015-07-15 20:57:49 524

原创 zoj 3639 Guess a Function

题意:原题目定义了四个函数,同时也给你了一组样例数据,由于函数中存在四个常量你并不知道,所以就需要你通过样例数据,推测出来。思路:在这里,首先要感激猛犸学长提供的思路。给出三个函数,分别是g(x) = x xor (x / 2)h1(x) = x / m1 * m1 + (x + s1) % m1h2(x) = x / m2 * m2 + (x + s2) % m2数据给出

2015-07-15 20:54:48 590 1

原创 zoj 3635 Cinema in Akiba

裸线段树,水题1A之。/*########################################################################## File Name: c.cpp# Author: CaoLei# Created Time: 2015/7/13 14:15:38########################################

2015-07-15 20:43:59 373

原创 zoj 3633 Alice's present

题意:一条线段上有很多礼物,主人公会从右往左扫描,当碰到重复的时候,说明这是一种坏情况,现在给你很多区间查询,现在现在想问你这个区间里面有没有重复的数。思路:首先想到的肯定是线段树,但是其实还有一一种更巧妙的办法,数组实现就行。我们用dis[e]记录e点左边的连续不重复最大区间是多少,这个建立的过程其实只需要O(nlogn)的时间就能建起来,其中判重的时候使用了map,这个非常巧妙。然后就方便

2015-07-15 20:34:40 373

原创 poj 3141 Distant Galaxy

这道题其实处理起复杂度有点高,我们采用的是枚举所有的矩形,判断落在边上的点有多少个,这道题我们看到坐标会很大,所以离散化是必不可少的,离散化之后,地图就会被划为100*100大小的,就可以方便操作了。首先要进行一次初始化,co[k][j][i][0]中存的是第K行的第j列到第i列中的点的个数,同理,co[k][j][i][1]中存的是第列中第j行到第i行的线段上点的个数。之后我采用的是四层循环

2015-07-15 20:30:44 631

原创 poj 3138 ACM Team Selection

这是一道简单的水题,难度不大,只要大家仔细些就行/*########################################################################## File Name: a.cpp# Author: CaoLei# Created Time: 2015/7/15 10:06:14#######################

2015-07-15 20:20:10 577

原创 2015上海邀请赛——Game

/*########################################################################## File Name: game.cpp# Author: CaoLei# Created Time: 2015/7/11 10:39:37######################################################

2015-07-11 15:06:05 489

原创 POJ 2163

主人公可能有多次买入和卖出,一定要注意!#include int main(){ int m, n, k, i, j,l,r; double pm[10010], pn[10010]; double eps=1e-9; double sum[10010],a[10010]; scanf("%d %d %d", &m, &n, &k); sum[

2014-08-02 14:55:15 444

空空如也

空空如也

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

TA关注的人

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