- 博客(10)
- 收藏
- 关注
原创 usaco 1.4 Packing Rectangles(枚举模拟 含结构体排序)and poj 1169
看到这题完全没有思路,网上看大神们的解析,有说到用深搜,但是不知道这题怎么用深搜,大概是自己没有理解 深搜 的用法。于是选用了令一种思路,枚举。因为题目中只说了六种情况,所以将他们全表示出来,加上四个矩形的位置及长宽变化,一一枚举。最后对答案进行排序,即可。以下截图来自百度文库:http://wenku.baidu.com/view/3cae8f14866fb84ae45c
2014-02-26 17:07:28 851
原创 noj:广搜 (bfs) and 深搜(dfs) 整理
第一次写dfs与bfs 在学长的帮助下过了两题自己学校oj的题第一题 dfsnoj 1010http://noj.io/problem/p/1010&cid=1116代码:#includeconst int M=81;int maze[M][M],n;int dir[][2]={{0,1},{1,0},{0,-1},{-1,0}};bool
2014-02-23 15:51:26 985
原创 usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)
思路:1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。3. 暴搜。第一行数从 100到999,第二行数从 10到99。4. 剪枝。代码:/*ID: who jayLANG: C++TASK: crypt1*/#includebool hash[10
2014-02-19 09:09:14 839
原创 usaco 1.3 Calf Flac(暴搜)
思路是暴搜。需要注意的地方是输入的方法,以及输出时的换行。代码:/*ID: who jayLANG: C++TASK: calfflac*/#include#include#includeint main(){ freopen("calfflac.in","r",stdin); freopen("calfflac.out","w",stdout);
2014-02-16 17:26:57 695
原创 usaco 1.3 Barn Repair(贪心)
思路:用上M块木板时有 M-1 个间隙。目标是让总间隙最大。将相邻两个有牛的牛棚之间间隔的牛棚数排序,选取最大的M-1个作为间隙,其余地方用木板盖住。做法:1.若,板(M) 的数目大于或等于 牛棚中有牛的数目(C),则 目测 给每个牛牛发一个板就为最小的需求~2.否则,先对 牛牛们的门牌号排序,然后 用一个数组 blank[ ] 记录两门牌号之间的距离,然后 用数组 ans
2014-02-09 11:17:26 598
原创 usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)
到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~结构体排序核心:1.结构体定义struct Milk{ int price; int milks;}milk[5000];2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,aint milkcmp(const void *va,const
2014-02-06 23:21:52 878
原创 usaco 1.2 Palindromic Squares(进制转化)
考察进制转化 注意一些细节就可以了直接上代码:/*ID: who jayLANG: C++TASK: palsquare*/#includeint x[20],xlen,y[20],ylen,B;void change(int n){ int m; m=n; xlen=0; while(m) { x[++xlen]
2014-02-04 23:05:37 526
原创 usaco 1.2 Name That Number(数字字母转化)
巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字需要注意的是从新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’详见代码:/*ID: who jayLANG: C++TASK: namenum*/#include#includeint main(){ FILE *fin = fopen ("namenum.in"
2014-02-04 21:56:24 580
原创 usaco 1.2 Milking Cows(类hash表)
第一种思路被卡了时间 到第二种思路的时候就觉得第一种思路太坑爹了 代码又长又臭还超时!!第一种思路:我不知道为什么最后一组数据会被卡 超时超了0.2s左右 大概想法是 快排加一个遍历 先将开始时间按升序排好 然后开始遍历比较 1 若 下一个开始beg[i] 小于 tem_end 则说明本组数据与上组数据是在连续的一个区间 取max( ed[i],tem_end )2 反之
2014-02-02 23:43:59 582
原创 usaco 1.2 Transformations(模拟)
我的做法就是一个一个情况枚举出来注意计算公式:( 变换后的矩阵记为C)顺时针旋转90°:C[i] [j]=A[n-j-1] [i](旋转180°和270° 可以多转几个九十度来推)对称:C[i] [n-j-1]=A[i] [j]代码有点长 。。。/*ID: who jayLANG: C++TASK: transform*/#includ
2014-02-02 20:08:28 502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人