- 博客(30)
- 资源 (3)
- 收藏
- 关注
原创 java在ACM竞赛中的使用
java简单功能强大,高精度类可以帮队员轻松地实现对大数操作,而不用C/C++手写高精度。使用java做题,不容易犯一些低级的错误,如: if (a = b)。刚刚接触acm的时候,笔者还不会使用java,为此还特地花了一个月时间学习了一下java语言。现在回过头来发现,学会在比赛中熟练地使用java其实根本不需要花很长时间......所以在这里小结一下java在acm比赛中的使用。
2013-01-21 22:04:28 4293 5
原创 Lua脚本语言学习笔记
什么是脚本语言?1.一种解释运行而非编译的计算机语言。2.以文本的形式保存,在被调用时进行解释或编译。为什么要使用LUA脚本语言?1.提高工作效率。项目规模扩大,编译源代码所需时间变长。为了不因为一些小的改动(改变几个常量的值),就去编译整个项目,所以使用脚本语言。2.提高创造性。使用lua脚本,不仅可以帮你初始化变量,还可以帮你创建游戏逻辑甚至是游戏对象。3.增加扩展
2013-01-21 11:49:37 2169
原创 Linux系统下的OpenGL图形程序框架
Linux系统下的OpenGL图形程序框架 说到图形界面编程,想到的大多是Windows下的多种多样的应用程序。Linux是一个基于命令行的操作系统,在Linux下的工作大多是在命令行里完成的,而并非像Windows那样。图形界面虽然并不是Linux的一部分,我们通过一些工具,依然可以编写一些在Linux下的图形应用程序。 OpenGL是一个工业标准的三维计算机
2013-01-15 12:03:28 7281
原创 BNUOJ 4151 Buying Feed II
Elite 2010 January Competition USACO Contest, SILVER DIVISION题意:一条直线长度为e上,有n个站点,每个站点上有1个或多个购物点。你需要在这n个站点上买到k磅物品。每个站点可以以C_i的价格卖给FJ 最多F_i磅东西。其中FJ的移动是单向的,且载在t磅东西移动y个单位,会造成t*y的额外消费。求使得最终消费最小。题解:把每个站点的
2013-01-30 22:06:25 525
原创 BNUOJ 3881 Jigsaw Puzzles
USACO Elite 2008 December Competition Silver题意:给你一些正方形的拼图碎块,每个碎块有四个边,每边都有一个记号,分别是小写字母a-z。其中没有标记的边,也就是边界的边用'0'标记。题目给定一个矩阵,把这些碎块放进去,要求每个边相接的记号必须一样,边界上的边必须是'0'。解法:DFS。这个操作起来还是挺麻烦的,做处理的时候要小心一些。
2013-01-30 21:53:13 860 1
原创 POJ 2140 Herd Sums
推出个数学式子~#include #include #include #include using namespace std;int main(){ int n,i,j,s,k,cnt; scanf("%d",&n); cnt=0; for (i=1; i<=sqrt(2*n); i++) { j=2
2013-01-29 20:04:50 475
原创 POJ 1950 Dessert
给定一个n,求由1到n的数经过'+','-'或'.'三种运算后值为0的方法数。并输出前20组答案,若不足20组,输出全部。这题思路肯定是DFS,在处理搜索出来的式子时会有些麻烦。#include #include #include using namespace std;int n,a[15],ans;int calc(){ int i,t,cnt;
2013-01-29 20:02:51 643
原创 BNUOJ 4157 Chocolate Giving
求最短路。给定一个无向图,后给出一些顶点对,求+的最小值。用spfa求一次最短路就可以了。#include #include #include #include #include using namespace std;struct edge{ int u; int v; int w;};edge e[1002000];
2013-01-29 20:00:09 477
原创 BNUOJ 3869 Buying Hay
完全背包,不过在最优值的选取上稍微有些不同。#include #include #include using namespace std;int dp[56000];int main(){ int n,h,mh,i,j,w[100],v[100]; memset(dp,0x7f,sizeof(dp)); scanf("%d%d",&n,&h); fo
2013-01-29 19:56:16 493
原创 POJ 3007 Organize Your Train part II
这题题意转化一下,给一个字符串,然后从任意位置把这个串分成两个子串(都不是空串),然后两个串a,b得到他们的反串c,d。最后得到8种组合ab,ad,cb,cd,ba,da,bc,cd。问最终可以得到多少种字符串。 用STL神马的会超时,所以用hash。于是写了个静态链表,1Y~#include #include #include using namespa
2013-01-14 11:56:38 933
原创 OpenGL织梦之旅【第三章】第4节.glut键盘鼠标响应
对于一个游戏来说,能够和玩家进行交互是很重要的。通过键盘、鼠标和手柄,游戏程序接受玩家的各项指令,从而做出反应。在控制台程序中,我们可以使用kbhit()函数来判断玩家是否有输入,如果有,再调用getch函数就可以接受到玩家的输入信息。 如:if (kbhit() != 0) //按下一个键{
2013-01-13 13:02:07 2387 4
原创 POJ 2387 Til the Cows Come Home
农夫囧的头号后宫母牛背时迷路了。给定一张无向图,背时在标号为n的节点。问背时回标号1的节点的最短路有多长。最短路,用dijkstra的话会比较麻烦,因为这题可能有重边。所以就要用到传说中号称快速求最短路的SPFA算法。诶。。其实是第一次写spfa,把模板放在这里,以后方便复习。。#include #include #include #include #include usin
2013-01-13 11:18:04 440
原创 BNUOJ 14362 Election Time
排序水题。第一次排序要求把a值前k大的提取出来。第二次排序要求把这k个里面b值最大的提取出来,并输出序号。#include #include #include #include using namespace std;struct T{ int n; int a; int b;};T ab[51000];bool cmp1(T a,T b){
2013-01-13 11:06:06 359
原创 POJ 1274 The Perfect Stall
有n头牛与m个牛棚,给出每头牛愿意去产奶的牛棚编号,每头牛只可产一次奶,每个牛棚也只允许一只牛产奶。二分匹配,模板题,匈牙利算法。#include #include #include #include using namespace std;int mp[210][210];bool ck[210],v[210];int p[210];int n,m;int find
2013-01-13 11:02:34 376
原创 BNUOJ 14280 Extra Krunch
USACO 2002 February的一道题。注意两点: 1.结果的开头和结尾没有空格; 2.标点前面没有空格;这题怒送6PE...#include #include #include using namespace std;int main(){ int i,f,la; char str[80]; char an
2013-01-13 10:58:40 521
原创 POJ 1949 Chores
USACO 2002 February 的一道题 题意是,有很多项工作,每个工作有完成所需的时间,而每一个工作可能会有一些前提工作,前提工作没完成就不能做这项工作。可以有多个工作同时进行。 思路是这样的。完成一项工作必然需要完成其所有的前提工作,因为工作是可以同时进行的,所以我可以再完成前提工作中最晚完成的那项之后,马上开始这项工作,所以这项工作完成的时间就
2013-01-12 17:09:14 892
原创 POJ 1948 Triangular Pastures
USACO 2002 February 的一道题题意是,把很多单独的线段重新组合成一个三角形,使得三角形面积最大。所有的线段都必须用上。解法是动态规划。用背包的思路,dp[i][j]为1,表示从这些线段中可以组成一个边长为i,另一边为j的三角形;为0则表示不能。因为周长是一定的,所以dp[i][j]表示一个三角形的边分别是i,j,c-i-j,通过海伦公式就能算出面积。#in
2013-01-12 16:57:15 848
原创 BNUOJ 4140 Video Game Troubles
动态规划问题。方程有很多种。还是NOWCO上面的那个感觉好理解一些。 把每组游戏机提供的游戏,看成是一件物品,对每组内的物品进行01背包,也就是拿和不拿的决策。然后对于n组游戏机,每组游戏机和其提供的游戏组合看成是一件物品进行01背包,也是拿和不拿的决策。 这样就把这个问题给分解了,所有的DP完成了就能得到最优解。 我太弱了啊,,昨晚被这道题一
2013-01-09 11:34:45 442
原创 POJ 2182 Lost Cows
有一组乱序的数列,数列有N个,范围是1-N,相同数字不重复。现给定另一组数列,新数列的第k位的值表示在原数列的第k位之前有几个数比其小。求原数列。 用线段树或树状数组+二分可以做,因为这个问题可以转化为求第k大数。 从新数列的最后一位a[n]开始看,因为在之前有a[n]个数比其大,原数列的值一定是a[n]+1。确定一个元素的位置后,从1~N这个序列中删除a[n]
2013-01-09 11:21:10 376
原创 BNUOJ 4156 Chocolate Buying
贪心,每次都找价值最小的巧克力。做的时候很怕爆long long,结果1Y了。#include #include #include using namespace std;struct T{ long long p; long long c;};T f[110000];bool cmp(T a,T b){ return a.p<b.p;}int m
2013-01-09 11:08:51 422
原创 BNUOJ 4138 Dizzy Cows
给一个有向图,之后,在给一些无向边,问怎么把这些边放进有向图中能不出现环。 解法相当简单,直接拓扑排序就行了,按照拓扑序的顺序加边,必然不会出现环。#include #include #include #include using namespace std;vector v[110000];int in[110000],topno[110000];int mai
2013-01-09 11:04:55 373
原创 POJ 1275 Drainage Ditches
最大流模板题,用EK算法。#include #include #include #include using namespace std;#define INF 9999999int map[260][260],flow[260][260];int EdmondsKarp(int sta,int tar){ int cnt,t,i,f[260],pr[260];
2013-01-08 10:56:00 350
原创 BNUOJ 3884 Hay Expenses
看第一眼,觉得是很裸的线段树,再看数据范围。。。就彻底无语了。。。#include #include using namespace std;int main(){ int n,a[510],i,s,e,ans,q; scanf("%d%d",&n,&q); for (i=1; i<=n; i++) { scanf("%d",a+i);
2013-01-08 01:06:54 559
原创 POJ 3256 Cow Picnic
水BFS#include #include #include #include #include using namespace std;int cnt[1010],a[120];bool ck[1010][120];vector g[1010];queue q;int main(){ int n,m,k,i,j,ans; scanf("%d%d%d",&
2013-01-08 01:04:17 474
原创 POJ 2181 Jumping Cows
给你n个药的序列,牛从时间1开始吃药,在奇数时间吃药可以增加弹跳力,在偶数时间吃药则会减少弹跳力。在某一时间,你可以跳过一些药,但一旦吃过某种药,你就不能在选前面的药了。问你某一个吃药的序列,使牛最终的弹跳力最大。 解法有多种,可以dp,可以贪心。动态规划: dp[i][0] 表示 当拿到第i个药时,之前已经拿了奇数个药的最大弹跳力。 dp[i]
2013-01-08 01:02:32 1242
原创 BNUOJ 4139 Cow Toll Paths
给定一个无向图,求两点之间的最短距离。这里的两点距离是指两点之间的路径权之和加上包括两点在内的所有经过的点中,点权最大点的点权。解法是floyd,但是需要变化一下。#include #include #include #include using namespace std;struct T{ int n; int v;};T p[260];int g[2
2013-01-08 00:53:47 606
原创 POJ 2567 Code the Tree
题目描述有点坑,看懂了就好。主要就是一个建图的过程比较麻烦,建好了就好作了。中文翻译地址:http://www.bnuoj.com/bnuoj/problem_show.php?pid=1009#include #include #include #include #include using namespace std;int now,n;int g[60][60],i
2013-01-07 22:00:59 766
原创 POJ 3903 Stock Exchange
最长递增序列#include #include #include using namespace std;int tmp[100010],lt;int main(){ int n,i,j,mi,ma,mid,t; while (scanf("%d",&n) != EOF) { lt=0; tmp[lt]=-99999999;
2013-01-06 22:43:05 455
原创 POJ 2421 Constructing Roads
最小生成树,用Kruskal。#include #include #include #include using namespace std;struct edge{ int u; int v; int w;};edge e[10000];int le,n,uset[110];int root(int x){
2013-01-01 15:14:34 362
原创 POJ 2013 Symmetric Order
2013年 新年快乐! 输入很多字符串,按照一定顺序将其输出。 #include #include #include using namespace std;stack s;queue q;int main(){ int prob,n,i,j; bool f; char str[40]; prob=1;
2013-01-01 15:12:57 601
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人