- 博客(190)
- 资源 (3)
- 收藏
- 关注

转载 ACRush 楼天成回忆录
利用假期空闲之时,将这几年 GCJ , ACM , TopCoder 参加的一些重要比赛作个回顾。首先是 GCJ2006 的回忆。Google Code Jam 2006一波三折:Google Code Jam 2006 是我第一次到美国参加现场的程序设计比赛。 Google Code Jam 2006 的比赛地点设在了纽约,这次纽约之行之前的签证出了不小的问题,这里非常感
2013-09-11 19:17:30
1804
原创 输出tensor的内容
对于sess = tf.InteractiveSession()train_step.run(feed_dict = {x: batch[0], y_: batch[1], keep_prob: 0.5})print(y_conv.eval(feed_dict = {x: mnist.test.images[0:1], y_: mnist.test.labels[0:1], keep_pr
2018-01-03 14:46:48
3413
原创 一个有趣的题目
给个数列A,问是否存在Ai<Ak<Aj(s.t.i<j<k)A_i<A_k<A_j (s.t. i<j<k). 这题是我在面试的时候碰到的题目,当时没想到O(n)O(n)解,所以当时假设没有O(n)O(n)解,然后面试官说了几个解被我challenge了。于是这道题到最后我和面试官也没给个O(n)O(n)解,今天早上上班的路上,又想了一下这道题。发现确实有O(n)O(n)解,特的写了这个题解。
2017-08-24 11:55:24
744
原创 2017"百度之星"程序设计大赛 - 资格赛
1001. 度度熊保护村庄这题是要求包含凸包的最小点数的凸包。假设凸包是A型点,外围点是B型点。那么如果对于所有Bi点对于凸包A做右切线,那么如果需要Bi点包围凸包A,显然是切线右边的点才可以和Bi相连。于是这时候是可以n^3暴力的。但是,其实对于Bi点来说,它能连到的最好的点,显然是所有满足的点中,右切线切点最远的哪个点是最优的。对于Bi来说,Bj和Bk都是可选点。但是显然Bk
2017-08-07 12:14:51
899
原创 带路径最大点权最短路
碰到了一个有趣的面试题。给定一个图,有边权和点权。让求任意两点间最短路:边权和+路径最大点权。分析:如果枚举最大点权的话,那么每次对于枚举的最大点权建图,跑Floyd就好了。但是这样显然并不好。考虑某个点作为路径中的点。那么显然比他小的点都在图中。然后只需要求该点到任意点的最短路。那么通过这个点,并且以这个点作为最大点权的最短路距离就都求出来了。于是。答案:枚举每个点作为起
2017-07-27 21:52:29
2107
原创 2017微软探星夏令营在线技术笔试
好久没在csdn上写东西了。1534 : Array Partition求一个前缀和,然后用map维护一下就好了。1535 : MSFT这题还是有一点意思的。因为出现两次的字符只有4个。于是考虑2^8枚举两个字符串中替换字符串中重复字符的位置。比如mma可以被替换成 Mma或者mMa。于是拿到的就是两个不含重复字符的串。然后求最少交换次数
2017-07-20 18:55:40
806
原创 2016_NENU_SoftWare_Summer_ Training_4
Problem A UVALive 7000 Present Problem//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#define xx f
2016-08-29 09:51:46
610
原创 jdbc数据库连接中文乱码
ubuntu系统下sql语句包含中文的话,插入到数据库中变成????,输出查询语句System.out.println(preparedStatement.toString());发现到这一步已经变成了问号,之前都是正确的。于是查了一下,发现是连接数据库时没有设置编码。于是// 连接字符串 private static final String URLSTR =
2016-08-27 14:03:08
725
原创 hdu 5853 Jong Hyok and String
说出来你可能不信,我把数组开成了char,结果检查了一辈子没检查出来。这题乍一看,是后缀自动机。但是后缀自动机都忘完了。于是就想了想,能不能用后缀数组。首先,分析完题目。其实题目让求的就是和询问串的后缀相同的,而且作为P串的子串的种数相同的有多少个。于是。我们可以把P串都接到一块,用不同的字符隔开。每次来一个串,我们可以通过二分,确定公共子串是当前串的所有后缀串前缀(把所有
2016-08-16 23:02:40
722
原创 hdu 5834 Magic boy Bi Luo with his excited tree
首先,如果要求的是以1作为开始位置的话,很容易想到一个dp[u][2],其中dp[u][0]表示以u节点为开始位子的子树最后回到u节点获得最大值,dp[u][1]表示不回来。转移就显而易见了。然后,考虑如果u节点结果已经计算出,怎么计算他的儿子节点v的答案。那么,也容易想到转移ans[v]=max(dp[v][1], dp2[u][!v][0] + dp[v][1] - 2 * c, dp
2016-08-14 23:01:10
972
原创 2016_NENU_SoftWare_Summer_ Training_3
Problem A URAL 2062 Ambitious Experiment//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#define xx
2016-08-06 17:03:43
612
原创 2016_NENU_SoftWare_Summer_ Training_2
Problem A UVALive 7214Arithmetical CAPTCHA//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#defin
2016-08-02 19:38:11
672
原创 2016_NENU_SoftWare_Summer_ Training_1
题意都忘了,我找了之前ac的部分题目的代码,大家讲究看一下吧,不会再问我。
2016-07-30 20:17:19
652
原创 2016"百度之星" - 初赛(Astar Round2B)
5696 区间的价值对于一个区间,考虑最小的数做出的贡献。对于最小的数,一定是和最大的数组成的对数才能对答案产生影响,否则对答案是没有作用的。所以就可以从最小值的位置,把整个区间分裂成两段,然后再递归下去。每次需要找个区间最小值,然后最靠近最小值的区间最大值,然后每个区间可以找到个答案对答案区间产生影响,所以我当时就写了三个线段树。。这样的话整个的复杂度应该是nlognlogn的,然后由于数据
2016-05-22 21:34:21
868
原创 2016"百度之星" - 初赛(Astar Round2A)
5690All X由于mod一个很小的数,所以把数拆成1111...11*x%k,等价于1%k+10%k+...+1em%k,显然这个东西循环节很小。于是找一下循环节就好了。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#inc
2016-05-21 22:30:19
792
原创 G++开栈
int __size__ = 256 << 20; // 256MB char *__p__ = (char*)malloc(__size__) + __size__; __asm__("movl %0, %%esp\n" :: "r"(__p__));
2016-05-21 21:29:49
2276
原创 Gym 100962F Frank Sinatra
树上莫队。关于树上莫队,需要做的是把树分块。可以直接按dfs序分块,但是这样速度比较慢。还有一种就是按后序遍历的方法去分块。这样就可以按左端点的块号排序,再按右端点的dfs序排序,然后上莫队了。还需要注意的是转移。需要的是每次把链给变掉,这个可以用两端点的变化来搞定。链的异或操作,可以实现链的转换。这道题题意是,给一棵树,然后每条边有边权。给你q个查询,每个查询问你一条链上最小
2016-05-12 13:18:48
758
原创 用scheme实现KMP算法
scheme真丧心病狂形式语义学作业,自选函数式语言实现任意程序。于是选了scheme。不得不说这个语言真蛋疼,括号匹配导致我检查的时间趋近于正无穷。#lang racket(define f (make-vector 101))(define m 7)(define n 7)(define loop2 (lambda(P i j) (begin (
2016-05-10 00:29:30
867
原创 2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest
A-Alex Origami Squares水题。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#define xx first#defin
2015-11-02 23:23:35
1660
原创 2015-2016 ACM-ICPC, NEERC, Moscow Subregional Contest
A-Anagrams不知道题意。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#define xx first#define yy seco
2015-11-02 23:05:06
1132
原创 2015 ACM/ICPC Asia Regional Hefei Online
A-Monitor the Alpacas(hdu 5484)先给n个点,再给m个点,要从m个点中选出最少的点使得这m个点形成的凸包包含这n个点。因为m比较少,所以我们可以先对n个点求凸包,然后再判断m个点形成的线段是否和凸包相交。然后就得到了各个点可以相连的情况。于是再跑个最小环就是答案了。暴力点可以用floyd。
2015-09-30 19:30:45
914
原创 2015 ACM/ICPC Asia Regional Shenyang Online
补题。A-Traversal占坑B-Best Solver这题当时是队友敲的,但是好像是这样的:(以下搬自_)考虑这个很容易让人想到二阶常系数线性递推,根据伟达定理容易知道因为系数都是整数,而且考虑到,故即的整数部分。上面那个式子可以用矩阵快速幂求,然后2^x很大,就猜肯定有循环节,然后就打了一个循环节的表交上去了。代码就不粘了,太长了。其实循环节都可以用 。
2015-09-23 20:20:26
1186
原创 ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛
补题。A-The Cats' Feeding Spots枚举圆心点,然后二分半径。注意圆的边上不能有点。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#
2015-09-22 17:24:17
2487
原创 BNU Training 2015.08.17
题目链接 这套题目比较简单,为了庆祝为数不多的AK,决定把题解发一下。233.... A. Smooth Visualization 签到题一个,搞搞搞就行了。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#inclu
2015-08-17 21:23:14
678
原创 hdu 5383 Yu-Gi-Oh!(最大费用费用流)
建二分图,然后对于所有新产生的Synchro Monster如果比组合前atk高,就连相应的边。然后因为题目要求的是最大费用(负数边权的最小费用),并不用最大流。所以跑费用流的时候,当费用变大的时候就停止增光。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include
2015-08-14 15:55:58
934
原创 hdu 5322 Hope(分治+NTT)
分治+NTT。思路是多校题解上的思路,我只是敲了一遍代码。下面图片引用自:http://blog.sina.com.cn/s/blog_15139f1a10102vo6q.html由于给定MOD是一个质数,并且998244353=119*2^23 + 1,所以可以用NTT直接代替FFT。//#pragma comment(linker, "/STACK:1024000000,1
2015-08-05 18:22:25
1415
原创 2015年百度之星程序设计大赛 - 初赛(1)
A.5246 超级赛亚ACMer显然要先排序,然后每次在能达到的最大的时候打平,这样的话就可以最大程度的利用k。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include
2015-05-31 13:59:40
1185
原创 hdu 5136 Yue Fei's Battle
当时做的时候整个人都已经糊掉了,搞了半天没过掉。其实很简单,dp[i]表示深度i的二叉树有多少种情况。然后分奇偶讨论下k就可以了。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#in
2015-04-16 15:43:44
728
原创 hdu 5134 Highway
其实是一个圆和六边形的面积并。可以知道的是,如图1,对于高速公路上的y点,一定是如图红线的方式走的最远(即使得当时的x值最大)。于是可以得到最终的区域即为图2的红色区域。对于P点,我们可以通过三分得到,从起点到P的时间t,于是问题就得到了解决。圆和多边形面积并下就好了~//#pragma comment(linker, "/STACK:1024000000,1024
2015-04-16 15:37:49
1537
原创 hdu 5126 stars(三维空间cdq分治)
三维的cdq分治,需要cdq分治套cdq分治去降掉两维。c++一直超时,g++才能过也是醉了。#include#include#include#include#include#define CLR(a, b) memset(a, b, sizeof(a))#define LL long longusing namespace std;const int maxn = 50
2014-12-17 15:39:03
1112
原创 1752. [BOI2007]摩基亚Mokia (cdq分治模板题)
题目:1752. [BOI2007]摩基亚Mokiacdq分治论文中的题目,通过cdq分治可以做到降维,然后用树状数组维护就可以了。#include#include#include#include#define CLR(a, b) memset(a, b, sizeof(a))#define LL long longusing namespace std;const i
2014-12-17 12:53:57
1649
原创 hdu 5145 NPY and girls (莫队算法)
题意:有一个长度为n的数字序列,m次询问一个区间l-r中数字重新排列的方案数(mod 10^9+7)。 明显的莫队算法,只需要排序,然后预处理一下逆元就可以了。 所谓的莫队算法,最初版本是求曼哈顿距离最小生成树的。但是现在一般是分块排序,这样就可以做到n*sqrt(n)的复杂度,对于这个可以大概yy一下。如果对于每个区间可以O(1)的扩展区间的话
2014-12-17 10:03:42
1040
原创 Codeforces 484E Sign on Fence
Codeforces 484E Sign on Fence题意:给n个高度为h的木板,连续放置。然后询问l,r区间内,连续w个最小高度的最大值是多少。做法:首先询问可以用二分答案,然后对于每个二分的值我们需要建主席树来验证是否可行。主席树主要实现功能,显然,如果把高度大于等于二分值ans位置都置为1,其他位置置为0,那么我们只需要验证区间l,r中是否有超过w个连
2014-11-10 14:15:59
1087
原创 zoj 3820 Building Fire Stations(树上乱搞)
做同步赛的时候想偏了,状态总是时好时坏,这状态去区域赛果断得GG了。题目大意:给一棵树,让求出树上两个点,使得别的点到两个点较近的点的距离最大值最小。赛后用O(n)的算法搞了搞,其实这道题不算难。逗逼的没A。。其实这两个点一定是树直径上的两个点,如果能想到这个就很好搞了,只需要求出树的直径,然后从中间位置把树拆成两颗子树,然后分别求出子树的中心就好了。证明如下,假如我们已经求出树上
2014-10-13 13:16:14
1708
数位计数问题解法研究
2013-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人