- 博客(85)
- 收藏
- 关注
原创 codeforces Round#503(div 2)
D、The hat题意:有2n个学生围成一圈坐着,相邻的两个学生拿到的数字相差1或者-1,让你通过询问,得到那两个学生手里的数字相等。分析: E、Sergey's problem题意:给一颗有向树,选出一些顶点集合,使得所有的点在两步之内可达,且两个相邻的点最多选择一个。分析:一开始我一直在考虑是不是要从入度为0的节点开始,但是遇到复杂的图时,例如环。或者这个图都是一个环,...
2018-09-01 18:38:49 175
原创 关于卡特兰数的一点感悟
关于卡特兰数,有两种理解第一种:可以理解为从任意一个地方卡一条线,两边的结果相乘。第二种:有两种数字0,1,各有n个,进行排列,对任意前k个数字中,要求0的个数大于等于1的个数。之前有一道面试题,说有2n个人排队,要求排成两排,每排从左到右身高依次增高,前后的两个人,后面的人比前面的高。问有多少种排列方式?之前的想法一直是从2n中选n个放一排,剩下的放一排,但这有个问题,没法保证后...
2018-08-31 23:10:29 260
转载 github
配置密钥: https://segmentfault.com/q/1010000003061640Git教程: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2017-11-06 15:41:36 242
转载 随机采样方法
随机采样方法整理与讲解(MCMC、Gibbs Sampling等)时间 2015-02-01 21:46:00 博客园-原创精华区原文 http://www.cnblogs.com/xbinworld/p/4266146.html 主题 吉布斯抽样 本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅。其实参考资料中的资料写的比
2016-03-24 18:29:15 501
转载 python,os操作文件,文件路径
python获取文件上一级目录:取文件所在目录的上一级目录os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir))os.path.pardir是父目录,os.path.abspath是绝对路径举例具体看一下输出: printos.path.dirname(os.pa
2015-04-23 18:45:30 1031
原创 oj2.0 判题流程
判题流程图如下:说明:内核文件是可以单独运行、测试的。只需要将core_hq.py 与L0-runner-master中的文件配齐,在core_hq文件最后 if__name__='__main__' 中写入程序代码,测试。
2014-12-04 09:31:15 1194
原创 git的安装及简单应用
https://github.com/cugbacm/oj/wiki/Git%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E7%AE%80%E5%8D%95%E6%93%8D%E4%BD%9C
2014-07-29 15:02:26 379
原创 Linux基础学习
Ubuntu 系统默认 root用户是不能登录的,密码也是空的。如果要使用 root用户登录,必须先为 root用户设置密码。打开终端,输入:sudo passwd root然后按回车此时会提示你输入密码,在 password:后输入你现在登录的用户的密码然后系统提示你输入新的 UNIX密码Enter new UNIXpassword: 这里输入你想为 ro
2014-07-20 01:19:11 306
原创 扩展gcd 模板加解析
补充: 扩展欧几里德算法是用来在已知a, b求解一组x,y使得a*x+b*y=Gcd(a,b)(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。下面是一个使用C++的实现: int exGcd(int a, int b, int &x, int &y) { if(b == 0) { x = 1; y = 0; return a; } in
2013-10-10 22:15:24 564
原创 poj 1200(字符串哈希)
一开始直接开了map,不知道要用字符串哈希。 果断TLE, 其实一共nc个字符,让每个字符对应一个0-nc的数字,则不同的长度为n的字串哈希值也不同,就是以nc为进制,不同的以数字0-nc的长度为n的数字组合唯一。#include#include#include#include#include#includeusing namespace std;char s[2700
2013-10-07 21:32:08 429
原创 2013 国庆第一场(The 2011 Rocky Mountain Regional Contest)
题目:hdu4161-4170Iterated Difference:绝对暴力,可是比赛时写出代码,wa了三次,因为中间输出忘了注释,这写代码功底是差到家了,很少能一气呵成,不出错误。还是思路不够清晰明了。#include#include#include#include#include#includeusing namespace std;int a[50];int
2013-10-02 22:10:54 425
原创 整数划分模板
整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 如果{m1,m2,...,mi}中的最大值不超过m,即max(m1,m2,...,mi) 例如但n=4时,他有5个划分,{4},{3,1},{2,2},{2
2013-09-21 15:02:30 574
原创 uva 437 (dag 最长路)
题意:给出n个长方形,每个长方形都有无数多个,问怎么排列能使高度最高,最高的高度是多少? 长方形三条边的任意一条都能作为高,所以一个长方形可产生三种长方形。然后直接用dag最长路。#include#include#include#include#include#includeusing namespace std;#define inf 111111111i
2013-09-21 11:09:11 670
原创 hdu 4001 (动态规划)
题意:给n个长方形,共有3种类型。 类型为1的长方形必须放在其长宽都大于等于另一长方形的上面,类型为2的长方形必须放在其长宽都大于等于且面积小于另一长方形的上面,类型为3的长方形必须放在其长宽都大于另一长方形的上面。 放置关系只与长宽和类型有关,排序很关键,排序完成后,应该有一个长方形不可能放到排在它后面的长方形上面。 然后用两层for,记忆话搜索即可。#include#inclu
2013-09-21 11:04:46 524
原创 最长回文串模板 (Manacher's算法)o(n)复杂度
//最长回文子串#include#include#include#include#include#includeusing namespace std;#define N 1100000char s[N],str[N];//str:原串 s:处理后的串int p[N];int len;void init() //初始化,生成s{ len=strlen(str
2013-09-18 21:45:18 530
原创 最长公共子序列模板
#include#include#include#include#include#include#includeusing namespace std;char s1[1000];char s2[1000];int dp[1100][1100];int p[1100][1100];int len1,len2;void solve(){
2013-09-15 16:57:07 396
原创 两道简单“几何”
一:题目大意:一个圆上给定n点的角度(与x正半轴的夹角0-360),n个点能组成n*(n-1)*(n-2)/6个三角形,问这些三角形中锐角三角形的个数是多少?解题思路:反向考虑钝角和直角三角形的个数,三个点比位于一条经过半径的直线一侧(包括直线)。 直角三角形的斜边必然是一条直径。#include#include#include#include#include#in
2013-09-13 21:28:02 420
原创 13/9/5 组队赛
E:Coffin Tiles就是找一个数的因数,打表即可,可是竟然忘记了用freopen,不晓得打表结果放哪,哎。。#include#include#include#include#include#includeusing namespace std;#define mod 1000005int a[mod];int b[1000]={0,1,4,12,24,36,60,
2013-09-05 20:34:18 530
原创 Regionals 2011, Asia (KMP,字符串哈希)
题目大意:就是求满足第一个串的后k位 与 第二个串的前k位 相同的k的个数BKDR Hash Function字符串哈希做法:#include#include#include#includeusing namespace std;unsigned long long p=31; //p还可取131,1313,13131.。。unsigned long long
2013-09-04 14:20:06 381
原创 Asia Regional 2011(最短路)
标准的的求最短路问题:bfs直接过#include#include#include#include#include#include#include#includeusing namespace std;vectorv[1100];int step[1100];int vis[1100];double dis[1100][1100];double l,r;int
2013-09-04 11:35:48 398
原创 Regionals 2011, Asia (二分图匹配)
二分图也做过些,可是这题在比赛时竟然没有看出来,就是标准的二分图匹配啊。反思反思题目大意:有n户人家,m所别墅,给出各户的人口数,每所别墅所能容纳的人数(每种别墅无限种),现在要求两家合租一户别墅,当且仅当这两家人数之和等于别墅所能容纳的人数,问最多有多少种组合方式。6 41 2 3 4 4 5 //每户人家的数目6 9 3 5 //每栋别墅所能容纳的人数最多组合三种,
2013-09-04 11:29:20 432
原创 13/8/31 cugb 组队赛 (模拟)
题目大意:给一个数字串,输出一个图形,为了使图形看起来平滑,每一列‘+’之差不超过1。我们的模拟神10分钟就看题,上交代码一气呵成。而我看完之后光想就想了10分钟,可见模拟功力之差呀。首先行数比较好确定,就是一串数字之中的最大值,列数通过遍历数字串就可以了,若两个相邻数字a,b之差大于等于2,则必然就要a+1....b-1,使之变平缓,记录每一个列数的数字,输出时一行一行输出,如果
2013-09-03 20:31:07 431
原创 codeforces #198(div2)
怎么说呢,好不容易说半夜做,结果做了一题,碰到一道简单几何做不下去了,下面是后来参考别人的思路完成的。参考网址:http://www.cnblogs.com/Lyush/p/3294422.htmlA:太水不多说。B:题目大意:就是给出n个点,保证不会出现三个点在同一直线上的情况,让你从中选四个点,使形成的四边形面积最大。解题思路:枚举一条对角线,分别枚举左边和右边的点,使左边
2013-09-03 20:12:11 499
原创 hdu 4632 回文DP
题目大意:给定一个字符串,让你求这个字符串中有多少个回文子序列 如:abab 中a,b,a,b,aa,bb,aba,bab,一共8个回文子序列。既然是DP的问题,当然还是找状态转移方程吧,本题的状态转移方程是:如果s[i]!=s[j]dp[i][j]=(dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1])%mod //注意因为公式中有减号存在,可能出现
2013-09-01 21:16:17 397
原创 hdu 4487 概率DP
只要求出状态转移方程题目就简单了;dp[i][j][k] 表示走i步到j位置最右边位置是k 所以很轻易就知道k>=j;s:不走概率 l向左走概率 r向右走概率如果k==j;dp[i][j][k]=dp[i-1][j][k]*s+dp[i-1][j-1][k-1]*r+dp[i-1][j-1][k]*r;如果k!=j;dp[i][j][k]=dp[i-1][j][k
2013-09-01 15:08:10 396
原创 数据结构模板
BFS求树的直径:vector v[110000];int vis[110000];int step[110000];int T,n,q,a,b,m;int u;int Mstep;//求树的直径void bfs(int x){ Mstep=-1;u=-1; memset(vis,0,sizeof(vis)); memset(step,
2013-09-01 13:56:18 330
原创 我犯的低级错误
2013/8/30今天做了一道之前做过的多校原题,竟然WA了两次,上次还是一A,看来我是没有真正明白其中缘由:下面解释一下这个错误是如何造成的: for(int k=1;;k++) { if((i-f[k]<0)&&(i-f1[k]<0)) break; if(i-f[k]>=0)
2013-08-30 21:19:33 370
原创 hdu 4666 最远曼哈顿
一般这也太难想到了,这道题完全根据09年武森写的一篇《《浅谈信息学竞赛中的“0”和“1”——二进制思想在信息学竞赛中的应用》》一文中的一个例子写的。以后得学着看论文喽~考察multiset的使用做完这道题可以再看一下poj2926#include#include#include#include#include#include#includeusing n
2013-08-29 15:39:29 406
原创 8 27 组队赛 Greater New York 2012
题目来源 hdu4484 -- 4492hdu4484 最水的一道,直接一直找到1为止#include#include#include#include#include#includeusing namespace std;int a[11000];int main(){ int N; int n; scanf("%d"
2013-08-29 13:47:13 436
原创 codeforces #197(div2)
A:就是将1、2、3、排序后后,中间依次加上'+'#include#include#include#include#include#includeusing namespace std;char s[110];char ss[110];int main(){ cin>>s; int len=strlen(s); int c1
2013-08-28 22:43:26 398
原创 卡特兰数
百度百科:http://baike.baidu.com/view/2499752.htm#refIndex_2_2499752卡特兰数百科名片 卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。目录简介原理应用括号化出栈次序凸多边形三
2013-08-24 22:20:09 588
原创 poj 2478 欧拉函数
欧拉函数基础之基础题 #include#include#include#include#include#include#includeusing namespace std;#define Max 1000005int p[Max];int ph[Max]; //记录《=i的且与i互质的个数void prime() //筛选法求素数{
2013-08-23 22:39:27 359
原创 poj 1942 组合数问题
本题很简单,但处理方法也很特殊,用double来存中间结果,神!同样的公式,不同的处理方法,效果不同。 如:选择n时一定选小的,节约时间。 处理阶乘有三种办法:(1) 传统意义上的直接递归,n的规模最多到20+,太小了,在本题不适用,而且非常慢(2) 稍快一点的算法,就是利用log()化乘为加,n的规模虽然扩展到1000+,但是由于要用三重循环,一旦n规
2013-08-23 21:52:58 564
转载 map 的使用
C++ map的基本操作和使用 来源:(http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html) - C++ map的基本操作和使用_Live_新浪博客 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本
2013-08-23 16:51:07 356
转载 set 的应用
一直觉得编程中没有用到set的地方,今天碰到一道,傻眼了,学习一下吧 1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。 set和multiset的区别是:set插入的元素不能相同,但是multiset可以相同。 创建 multiset base; 删除:如果删
2013-08-23 16:34:19 414
原创 hdu 3874 树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874这里用到了离线算法,先将询问排序,然后用树状树组进行操作,如果一个价值没有出现过,则将其位置加上相应价值,如果出现过,则在当前位置加上该价值,而在已经出现过该价值的位置删除该价值,相当于一个移位操作,保证相同价值总出现在最后,从而保证了算法的正确性,最后用树状数组进行求和。 #in
2013-08-22 22:28:32 432
原创 poj 2481 树状数组
一开始根本没想到是树状数组,因为有两个端点需要处理,后来经提醒,排序后只剩下一个端点,接下来树状数组就ok了。注意:题目中下标从0开始,所以输入后都要加1,以满足树状数组下标从1开始的性质。排序后一个一个处理,前面的比后面强壮,或区间相同,处理时排除区间相同的即可。#include#include#include#include#include#include#
2013-08-22 20:34:48 392
原创 2013多校 第10场
hdu 4704题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4704一条公式搞定,知道了很快AC,不知道就苦逼了,我是不知道的,呵呵,慢慢积累。 所以只需将输入的字符串转化为10^9+6内的数即可,然后快速幂求 另一条公式: #include#include#include#include
2013-08-22 19:08:40 478
原创 poj 1195 二维树状数组
裸的二维树状数组模板题求和公式注意了。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int n;int c[1111][1111];int a[1111][1111]
2013-08-22 14:32:47 425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人