- 博客(31)
- 收藏
- 关注
原创 游戏开发进度追踪
2017.2.26 jzj与jlx讨论后决定游戏大致框架2017.3.23 游戏名字由lxf暂定为数术迷踪(改编自小说数术通治)
2017-03-24 12:44:00
579
原创 google codejam 2008 round2
Problem A. Cheating a Boolean Tree模拟题,可将dfs的结果保存到数组进行优化 #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include
2017-02-18 00:08:19
334
原创 google codejam 2008 round1B
Problem A. Crop Triangles、 #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #
2017-02-02 22:32:17
358
原创 codeforces #354(div 2) D
题目链接:http://codeforces.com/contest/676/problem/D题目大意:经典的迷宫问题,每个时刻有5种操作,走到相邻的房间或者让所有的房间顺时针旋转90°,房间的旋转只改变门的方向,能走到相邻房间的条件是这间房和下一间房都要有门朝向对面。每次操作都会花费1秒,求起点走到终点的最短时间。解题思路:可以用简单粗暴的bfs,用三维的vis数组记录每个房间
2016-05-28 20:07:58
367
原创 codeforces #354(div 2) C
题目链接:http://codeforces.com/contest/676/problem/C题目大意,给定一个长度小于等于100 000的一个只含有a或者b字母的字符串和一个常数k,问在最多只能改变k个字符的情况下最长的元素都相等的子串的长度为多少?解题思路:算法比较简单,不妨假设满足题意的子串所含的元素为a,定义两个变量f和r代表一前一后的两个指针,tmp保存指针所指的子串中
2016-05-28 19:46:12
346
原创 codeforces #25D
题目大意:给你一个由n个点和n-1条边组成的无向图,问你最多去掉几条边同时增加几条边可以使得原图成为一个连通图解题思路:涉及到连通性问题,则考虑dfs或者并查集。本人采用了后者,读取每条边的同时,看两个端点是否处于一个联通块,若没有,则直接加入,否则将这条边加入一个元素为待删除的边的集合。读取完之后再把所有的点所属于的联通块(记录为根节点)放入一个set,最后轮流取出set中相邻的两项
2015-10-27 18:40:20
412
原创 codeforces #25E
题目大意:有一个由n个点组成的无向图,给你一个邻接表,a_i,j代表从i到j的最短距离,接下来会有k次操作,每次操作会新建一条从x到y的路,求每次操作完,更新后的邻接表的每个元素和的一半。解题思路:每次操作更新x与y间的距离,首先要判断a_x,y是否需要更新,然后利用floyd算法更新其他的最短距离,但如果每次都直接更新,那复杂度是n^3*k会超时,所以考虑优化。又每次更新只更新一条边,所以用
2015-10-27 11:28:41
406
原创 codeforces #39E
题目大意:有两个人玩游戏,每次对a或b进行加1的操作,使得a^b解题思路:博弈类型动态规划,这里采用的是记忆化搜索,没有接触过此类问题的可以先做一下UVAOJ的10404,题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1345在此题
2015-10-26 00:01:43
718
原创 codeforces #35D
题目大意:农场中原来有X份粮食,每天会有一个动物来,每个动物会在第i天消耗i份粮食,你可以选择接受或者拒绝,求最后能容纳的最多动物数。题目思路:每个动物消耗的粮食都是定值。。。所以可以直接安装消耗的粮食数进行排序,或者0-1背包处理均可AC代码:#include #include using namespace std;ifstream fin;ofstream fout;
2015-10-25 23:43:39
457
原创 codeforces #38E
题意:有n个弹珠分别位于x轴上的一些位置,你可以选择其中的一些固定住(需要花费ci),当选择完毕之后,从最右面开始,弹珠会依次向左滚动直到遇到被固定住的弹珠(否则视为滚到无穷远处),计算花费+所有弹珠滚动的距离之和的最小值思路:使用动态规划,首先最左边的弹珠肯定是要被固定住的,接着从左向右考虑每一个弹珠,固定每一个弹珠的花费都是可以直接得到的(花费-右边所有弹珠的个数*该弹珠到它右边相邻的一个
2015-10-25 23:36:20
514
原创 实数gcd,大数快速乘与组合数取模
实数gcd在计算几何的题目中,有时会需要你算两个角度的最大公因数(会有误差),具体操作和整数的gcd类似,但要注意输入可能会有0。模板如下:double fgcd(double a,double b){if(fabs(a)if(fabs(b)return fgcd(b,fmod(a,b));}//fmod为math库的小数取余函数大数快速乘适用于那些中间
2015-09-21 16:53:16
1138
原创 hdoj 1028
题目大意:求出将给定数字分成若干正整数的不同方法个数题目分析:该题可等价转化为硬币转化问题:有各种正整数面值的硬币,求出给定钱数的不同组合方式的个数,定义dp(x,y)为能组成x元的,且最大面值为coin[y]的不同组合方式。状态转移方程为:dp(x,y) = dp(x-coin[y],y)+dp(x,y-1);则答案只需要从最大的y开始往前扫,第一个不为零的dp(x,y)即为答案。
2015-08-21 15:25:57
791
原创 uva 10405 Longest Common Subsequence
题目大意:求出两个给定字符串的最大上升子序列解题思路:状态转移方程,如果a[i-1] = b[i-1],那么dp[i][j] = dp[i-1][j-1]+1,否则dp[i][j] = max(dp[i-1][j],dp[i][j-1]),在dp前记得初始化dp[i][0]与dp[0][j]为0,递推计算从1到字符串长度题目坑点:字符串可能包含空格,需要用getline输入代码如下:
2015-08-20 00:26:26
336
原创 uva 103 Stacking Boxes
题目大意:多维方形嵌套问题,要求输出最大的个数以及任意一组可嵌套的方形题目思路:参考两维的矩形嵌套问题题目坑点:无参考代码:#include #include #include #include #include #include #include #include #include #include #include #include #include
2015-08-19 23:52:31
328
原创 uva 111 History Grading
题目大意:给出一个由历史事件的发生的先后顺序组成的标准答案,以及若干的试卷答案,要你比对正确的个数,也就是两个序列的最大公共子序列长度。题目思路:经典模型,状态转移方程:A[i]==B[i]时,dp(x,y) = dp(x-1,y-1)+1,否则dp(x,y) = max(dp(x-1,y),dp(x,y-1))题目坑点:并不是要你求给你的两个序列的最大公共子序列长度。而是要先转化,以
2015-08-19 15:23:24
378
原创 UVA 297 Tree
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=43041#problem/K题目大意:给一个树的中序遍历和后序遍历,求出它的根到叶子的节点值的最短值取到时的叶子结点,当最短值可以取到多次时,取叶子结点最小的那一个。题目思路:根据中序遍历和后序遍历先递归构造树,后爆搜一下就好题目坑点:无(如果输入时不告诉你结点个数不
2015-08-13 19:34:46
314
原创 UVA112 Tree Summing
好吧,线性表的题先跳过了,大多是一些无脑但是复杂的模拟。题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=43041#problem/J题目大意:给出一棵树,问是否存在一条从根到叶子的路径,使得这条路径上的每个结点的值的和为给定的数n解题思路:建树(输入比较复杂,需要用cin.putback,建议递归输入),爆搜(深搜
2015-08-12 14:00:55
288
原创 UVA673 Parentheses Balance
题目链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=43041#problem/E题目大意:给你一个字符串,让你判断是否能将里面的括号按照顺序配对,例如(){},或者(()[]),但像([)]这样就是不可以的。解题思路:建立一个栈,碰到左括号就进栈,右括号则出栈并匹配。题目坑点:1.注意到空字符串了没?2.出栈
2015-08-07 22:30:41
337
原创 7-8月acm训练第一发(数论与计算几何)
这一部分为刘汝佳的《算法竞赛入门经典》(第一版)第三章的数论与计算几何部分,但不需要运用经典算法与模板,以模拟为主题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=48182#overview题目分析:A.简单的模拟,给你一个数字,让你按照要求求出转化后得到的答案,只不过这个转化的过程和进制转化类似(真是连方法都告
2015-08-02 13:29:15
426
原创 小学期acm训练第一发(简单数学题)
这一部分为刘汝佳的《算法竞赛入门经典》(第一版)第三章的数学杂题部分,知识点的确比较杂,但还是以模拟为主。题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=43038#overview题目分析:A.让你对一个高精度的数求开方,直接开高精模板好像会T,所以使用了JAVA(JAVA自带快速幂,所以算乘方的时候回比较快),在
2015-07-21 17:59:18
996
原创 6月acm训练小结(排序与检索)
由于忙着复习期(da)末(you)考(xi),因此训练略有欠缺,今天特地抽空将将近一个月前的一套水题整理一下。题目来自于刘汝佳白书的第五章习题的第二部分(简单排序检索专题)下面发题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=43037#overviewA.UVA340 题目和猜数字游戏有关,大意是让你输出x
2015-06-28 22:56:07
514
原创 5月底acm训练解题报告(简单字符串)
最近一段时间的训练题以刘汝佳的《算法竞赛入门经典》(第一版)为主。这一周水掉了第三章的简单字符串与高精度部分,由于高精度可以用JAVA的库直接搞,这里就不赘述了。先发题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=41762#overview题目分析:A:题目大意是检查一个字符串是否为镜像与回文,是一道略
2015-06-07 20:39:09
485
原创 2015第四届华东师范大学程序设计竞赛 赛后小结
么么哒。这次比赛大致可以概括为:题目坑,汉堡香;气球少,奖品好。这次是计算机系的一个研究生供题,其中的签到题样例出现了错误,以至于各位同学过了一个多小时才开始签到。。。之前大部分人都在看G题——换气球。这是一道陈题,但看似简单,实则不好做,以至于王老板到最后也没能AC,包括很多同学也因为在这道题上花了太多时间而没有发挥出正常的水平。H和I也是两道水题,其中I开个set随便搞搞就行了,分解质
2015-05-31 21:20:04
1172
原创 2015acm上海大都会赛 赛后小结
5月24日,于华东理工大学,acm上海邀请赛。感谢队友HH,ZZX。比赛结果:AC两题,铁牌。比赛过程:一个多小时过了B,之后秒了E,看了F,赶紧无思路,主攻A和J,虽然都是数学题,却一道都没攻下来,J本来算出了随机抹一次的期望,赛后才发现应该算的是随机抹一次每一格的概率,因此走到了死胡同里。教训总结:主要是经验不足,第一次出战团体赛难免会紧张,而且也缺乏看榜,赛后学长说F题FB是
2015-05-31 17:18:59
706
原创 忙碌的一天,从数学竞赛开始
今天上午举行了我校第三届数学竞赛,而我也是抱着必死的决心去了数学组。好吧,其实题目也不是特别难,可惜第一题送分题,没能AC,上手先刷了最后一道,发现题目的结论写反了。之后信心大增,又连续刷了两道分析,第二道用反证法随手抓了两个聚点,第五题则是先把积分拆开来,注意一下如何分割,之后对每一部分求导完再加回去最后再积分即可。接下来几个小时的垃圾时间里便只能去两道高代那里骗骗步骤分(而且好像还没骗到),再
2015-05-23 20:19:28
405
原创 5月训练部分题解
还是以刷水题为主,主要为了保持手感,挑选了几道比较有代表性的易错题和模板题第一道是14年上海邀请赛的E,二分图匹配的模板题,关键在于能想到每一个“海洋”的坐标分别对应于横向的一个块和纵向的一个块,又每一个块中最多只能用一个海洋,因此符合匹配的条件,在用匈牙利算法之后得到的最大匹配数就是由左边的横向块和右边的纵向块所确定的海洋的坐标,也就是战舰的最大放置个数。链接如下:http://
2015-05-22 22:29:59
336
原创 2015年上海邀请赛 第一次赛前集训 小结
题目为2014年上海邀请赛真题,链接如下:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=62273#overviewA.直接贪心即可,当然也可以看成是一个二分图匹配,匹配条件是ai-i整除k,不过直接贪心更方便,贪心的时候注意如果一个a[i]能够被匹配,则先匹配掉。另一个思路是开一个数组保存i可以被匹配的个数,然后每匹配一次
2015-05-18 08:50:11
591
原创 2015年NEUACM省赛练习赛第二场 B题补充题解
题目链接:http://acm.neu.edu.cn/hustoj/problem.php?id=1552本题大意是求出每一次模拟一个队列的入队、出队操作之后队列中元素的最大值要想维护队列元素的最大值,第一个方法是将所有push的元素保存到一个数组中,然后用树状数组维护,这里要注意每一次pop操作之后要从该元素开始向根节点全部更新。提交的时候还需要注意数组的越界问题,本人就
2015-05-16 13:24:02
482
原创 国防科学技术大学第十八届银河之光文化节ACM程序设计竞赛初赛第三场 E题补充题解
链接如下:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1599典型的最大流,直接套用最大流Dicni算法模板即可,代码如下:
2015-05-16 13:20:38
1171
原创 2015年NEUACM省赛练习赛第二场 赛后小结
五一的最后一场练习赛,知识点分布比较均匀,花了一个多小时A了三道题后以为把能做的水题都做完了,然后就去吃了午饭,之后再看排名榜的时候发现只有少数题A了G(那时候差不多是过了2小时),读了一遍题好像要求从若干物品中拿出总美味度最大且总重量和总数量不能超过规定值的美味度之和(后来发现题目看错了QAQ),然后就挂机了 = =!以下是题目链接:http://acm.neu.edu.cn/hust
2015-05-16 13:19:54
534
原创 国防科学技术大学第十八届银河之光文化节ACM程序设计竞赛初赛第三场 赛后小结
国防科学技术大学第十八届银河之光文化节ACM程序设计竞赛初赛第三场 赛后小结 网络赛,题目难度按照codeforces划分的话大致是2A2B1C,因此手速比较重要,链接如下:http://acm.csu.edu.cn/OnlineJudge/contest.php?cid=2078 ;A 此题和hdoj中的1050算法相同,直接贪心,只有重复的两节课才需要两个
2015-05-16 13:15:56
819
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人