随笔:152 文章:0 评论:129 引用:0
C++博客 首页 发新随笔
发新文章 联系 聚合管理

感谢大家,在我不爽的时候鼓励我。有时候觉得自己很笨,身边这么多强人,和他们一比,太垃圾了。
不过我还是会坚持下去的,每天进步一点点。
杭州赛区快到了,能多学多少就或学多少吧,这次出去的目的很单纯:锻炼队伍,为明年做准备,有一队顶着呢,咱8队怕啥……
再次谢谢~~

posted @ 2008-11-10 19:57 Headacher 阅读(143) | 评论 (0)编辑 收藏
 
真的很笨,只会做简单题,脑子不聪明,尽管我很刻苦,可是没有天赋,在acm方面根本没有一点优势……我花了半天想不出来的题目,别人半个小时搞定,很自卑……我是不是不适合干这行。
夜深了,我很难受……
posted @ 2008-11-09 01:15 Headacher 阅读(637) | 评论 (10)编辑 收藏
 
     摘要:   阅读全文
posted @ 2008-11-08 13:53 Headacher 阅读(655) | 评论 (0)编辑 收藏
 

以前的帖子要么太分散,要么太凌乱,故现在开始,对每一个分类做一个长期更新的汇总贴。

格式说明:题目名后面列出个人此题的大致难度(对菜鸟而言)

POJ 1069 -The Bermuda Triangle(难)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1069
题意:用给定三角型填充六边形
解法:此题的思想上精华在于坐标化
ps:传说中比较bt,确实比较bt,主要很容易写错,我ac了,但程序没完全对....

POJ 1077 - Eight(中等,此题不做人生不完整)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1077
题意:八数码问题,超经典题
解法:广搜,A*,双向广搜
相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html
(百度之星的版本,强烈推荐):http://acm.hnu.cn:8080/online/?action=problem&type=show&id=10466&courseid=0

POJ 1084 - Square Destroyer(中等,经典题)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
题意:把每个正方型看做集合中的元素,每个木棒看做是一个子集,求最小的子集覆盖
解法:dfs,A*,广搜肯定爆空间

POJ 1167 - The Buses(好难啊)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1167
题意:这道题综合了很多经典的深搜技巧,狂顶
解法:dfs

POJ 1190 - 生日蛋糕(基础,好题)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1190

题意:略
解法:dfs,题偏简单,但做出来还是有些感觉的

POJ 1324 - Holedox Moving(中等)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1324
题意:略
解法:A*,dfs + 上界剪枝,广搜
相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html
http://hi.baidu.com/zfy0701/blog/item/a3c44ecc049b1c1501e92806.html

POJ 1376 - Robot(基础)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1376
题意:略
解法:bfs,A*....

POJ 1475 - Pushing Boxes(中等,很推荐)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1475
题意:推箱子游戏
解法:双重bfs(对箱子bfs 时 对人bfs),A*

POJ 1945 - Power Hungry Cows(??)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1945
题意:略
解法:在一份解题报告中被列为难题,不过好好像写了个很简单很暴力的bfs就过了...速度还是有些慢,暂时想不到好的启发函数

POJ 2044 - Weather Forecast(中等)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2044
题意:略
解法:广搜,dp,深搜
相关:http://hi.baidu.com/zfy0701/blog/item/d7b6490f847948e8ab6457c6.html

POJ 2286 - The Rotation Game(较难)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2286
题意:略
解法:IDA*(迭代加深+上下界强剪
相关:http://hi.baidu.com/zfy0701/blog/item/ce0f802261bfbba14723e871.html

POJ 2308 - Dearboy's Puzzle(中等,但做的人少?)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2308
题意:判断连连看是否有解
解法:DFS + BFS
相关:http://hi.baidu.com/zfy0701/blog/item/c62f41af65aa1fca7cd92afc.html

POJ 2426 Remainder(较难,=)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2426
题意:略,主要是数论部分比较容易让人抓狂
解法:bfs
相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html

POJ 2449 Remmarguts' Date(中等,强烈推荐)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2449
题意:经典问题:K短路
解法:dijkstra+A*,方法很多
相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144

POJ 2688 - Cleaning Robot(基础)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2688
题意:bfs后转换为tsp问题
解法:bfs+dp,bfs+dfs
相关:http://hi.baidu.com/zfy0701/blog/item/ceb06f261749a6128a82a1b2.html

POJ 2908 - Quantum(中等)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2908
题意:其实就是找单源最短路径
解法:优先队列广搜(即dijkstra),建议用位运算优化

POJ 3074 - Sudoku(中等)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3074
题意:数独游戏,数据比2676强很多,但比3076(我还tle中)弱
解法:用dfs回溯基本可过,不过每次应选择可能填的数字最少的格子搜

POJ 3322 - Bloxorz I(基础)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3322
题意:略,这个游戏本身很好玩(http://jandan.net/2008/01/24/bloxorz.html
解法:广搜,双向广搜
相关:http://hi.baidu.com/zfy0701/blog/item/d7b6490f847948e8ab6457c6.html

POJ 3460 - Booksort(较难,很推荐)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3460
题意:略
解法:IDA*,A*,DFS*
相关:http://hi.baidu.com/zfy0701/blog/item/5c5a404b0f73ecf582025ce4.html

POJ 3523 - The Morning after Halloween(较难)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3523
题意:把所有机器人移到各自的位置,不能相撞或重合
解法:我的状态设计太暴力了:以所有机器人位置表示状态。然后用A*过,排倒数第几,郁闷。谁知道好的状态设计方法告诉我^_^

POJ 3633 - Copying DNA(较难)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3633
题意:一个填充字符串的搜索题
解法:各种搜法皆宜
相关:算法的实现较挑战,我是参考了 http://www.wiskey86.cn/wordpress/?p=54 才搞定的

POJ 3635 full tank?(中等)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3635
题意:最短路变形
解法:广搜
相关:http://hi.baidu.com/hnu_reason/blog/item/086e3dccfc8cb21600e9286b.html

posted @ 2008-11-03 11:26 Headacher 阅读(883) | 评论 (0)编辑 收藏
 

一.动态规划
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1141
简单
http://acm.pku.edu.cn/JudgeOnline/problem?id=2288
中等,经典TSP问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2411
中等,状态压缩DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=1112
中等
http://acm.pku.edu.cn/JudgeOnline/problem?id=1848
中等,树形DP。
可参考《算法艺术与信息学竞赛》动态规划一节的树状模型
http://acm.zju.edu.cn/show_problem.php?pid=1234
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1947
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1946
中等,《算法艺术与信息学竞赛》中的习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1737
中等,递推
http://acm.pku.edu.cn/JudgeOnline/problem?id=1821
中等,需要减少冗余计算
http://acm.zju.edu.cn/show_problem.php?pid=2561
中等,四边形不等式的简单应用
http://acm.pku.edu.cn/JudgeOnline/problem?id=1038
较难,状态压缩DP,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1390
较难,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3017
较难,需要配合数据结构优化(我的题目^_^)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1682
较难,写起来比较麻烦
http://acm.pku.edu.cn/JudgeOnline/problem?id=2047
较难
http://acm.pku.edu.cn/JudgeOnline/problem?id=2152
难,树形DP
http://acm.pku.edu.cn/JudgeOnline/problem?id=3028
难,状态压缩DP,题目很有意思
http://acm.pku.edu.cn/JudgeOnline/problem?id=3124

http://acm.pku.edu.cn/JudgeOnline/problem?id=2915
非常难

二.搜索
参考资料:
刘汝佳《算法艺术与信息学竞赛》
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1011
简单,深搜入门题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1324
中等,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2044
中等,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=2286
较难,广搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1945
难,IDA*,迭代加深搜索,需要较好的启发函数
http://acm.pku.edu.cn/JudgeOnline/problem?id=2449
难,可重复K最短路,A*。
可参考解题报告:
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144
http://acm.pku.edu.cn/JudgeOnline/problem?id=1190
难,深搜剪枝,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
难,《算法艺术与信息学竞赛》习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2989
难,深搜
http://acm.pku.edu.cn/JudgeOnline/problem?id=1167
较难,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1069
很难

三. 常用数据结构
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
线段树资料:
http://home.ustc.edu.cn/~zhuhcheng/ACM/segment_tree.pdf
树状数组资料
http://home.ustc.edu.cn/~zhuhcheng/ACM/tree.ppt
关于线段树和树状数组更多相关内容可在网上搜到
后缀数组资料
http://home.ustc.edu.cn/~zhuhcheng/ACM/suffix_array.pdf
http://home.ustc.edu.cn/~zhuhcheng/ACM/linear_suffix.pdf
推荐题目
http://acm.pku.edu.cn/JudgeOnline/problem?id=2482
较难,线段树应用,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1151
简单,线段树应用矩形面积并,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3225
较难,线段树应用,可参考解题报告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233
http://acm.pku.edu.cn/JudgeOnline/problem?id=2155
难,二维树状数组。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2777
中等,线段树应用。
http://acm.pku.edu.cn/JudgeOnline/problem?id=2274
难,堆的应用,《算法艺术与信息学竞赛》中有解答
http://acm.zju.edu.cn/show_problem.php?pid=2334
中等,左偏树,二项式堆或其他可合并堆的应用。
左偏树参考http://www.nist.gov/dads/HTML/leftisttree.html
二项式堆参见《算法导论》相关章节
http://acm.pku.edu.cn/JudgeOnline/problem?id=1182
中等,并查集
http://acm.pku.edu.cn/JudgeOnline/problem?id=1816
中等,字典树
http://acm.pku.edu.cn/JudgeOnline/problem?id=2778
较难,多串匹配树
参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/zzy2004.pdf
http://acm.pku.edu.cn/JudgeOnline/problem?id=1743
难,后缀数组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2774
较难,最长公共子串,经典问题,后缀数组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2758
很难,后缀数组
可参考解题报告
http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178
http://acm.pku.edu.cn/JudgeOnline/problem?id=2448
很难,数据结构综合运用
四.图论基础
参考资料:
刘汝佳《算法艺术与信息学竞赛》
《算法导论》
《网络算法与复杂性理论》谢政
推荐题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=2337
简单,欧拉路
http://acm.pku.edu.cn/JudgeOnline/problem?id=3177
中等,无向图割边
http://acm.pku.edu.cn/JudgeOnline/problem?id=2942
较难,无向图双连通分支
http://acm.pku.edu.cn/JudgeOnline/problem?id=1639
中等,最小度限制生成树,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=2728
中等,最小比率生成树,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=3013
简单,最短路问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=1275
中等,差分约束系统,Bellman-Ford求解,《算法艺术与信息学竞赛》中有解答
http://acm.pku.edu.cn/JudgeOnline/problem?id=1252
简单,Bellman-Ford
http://acm.pku.edu.cn/JudgeOnline/problem?id=1459
中等,网络流
http://acm.pku.edu.cn/JudgeOnline/problem?id=2391
较难,网络流
http://acm.pku.edu.cn/JudgeOnline/problem?id=1325
中等,二部图最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2226
较难,二部图最大匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=2195
中等,二部图最大权匹配
KM算法参考《网络算法与复杂性理论》
http://acm.pku.edu.cn/JudgeOnline/problem?id=2516
较难,二部图最大权匹配
http://acm.pku.edu.cn/JudgeOnline/problem?id=1986
中等,LCA(最近公共祖先)问题
参考Tarjan's LCA algorithm 《算法导论》第21章习题
http://acm.pku.edu.cn/JudgeOnline/problem?id=2723
较难,2-SAT问题
参考:http://home.ustc.edu.cn/~zhuhcheng/ACM/2-SAT.PPT
http://acm.pku.edu.cn/JudgeOnline/problem?id=2749
较难,2-SAT问题
http://acm.pku.edu.cn/JudgeOnline/problem?id=3164
较难,最小树形图
参考《网络算法与复杂性理论》中朱-刘算法
五.数论及组合计数基础
http://acm.pku.edu.cn/JudgeOnline/problem?id=1811
简单,素数判定,大数分解
参考算法导论相关章节
http://acm.pku.edu.cn/JudgeOnline/problem?id=2888
较难,Burnside引理
http://acm.pku.edu.cn/JudgeOnline/problem?id=2891
中等,解模方程组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2154
中等,经典问题,波利亚定理
http://cs.scu.edu.cn/soj/problem.action?id=2703
难,极好的题目,Burnside引理+模线性方程组
http://acm.pku.edu.cn/JudgeOnline/problem?id=2764
较难,需要数学方法,该方法在《具体数学》第七章有讲
http://acm.pku.edu.cn/JudgeOnline/problem?id=1977
简单,矩阵快速乘法

posted @ 2008-11-03 11:06 Headacher 阅读(178) | 评论 (0)编辑 收藏
 
     摘要:   阅读全文
posted @ 2008-11-01 00:52 Headacher 阅读(1850) | 评论 (1)编辑 收藏
 
     摘要:   阅读全文
posted @ 2008-10-26 23:24 Headacher 阅读(1686) | 评论 (0)编辑 收藏
 
     摘要:   阅读全文
posted @ 2008-10-26 10:43 Headacher 阅读(499) | 评论 (0)编辑 收藏
 
题目大意:求给定的n(1<=n<=16)个正整数边长的小正方形(每个边长<=10)能否恰好无重叠拼成一个边长为s的大正方形。

看看数据范围和题目类型,基本也就知道,判断一下所有小正方形面积之和是否恰为s^2之后,就应该搜索了,但是不好确定搜索对象和顺序,是依次将每个小正方形放入,放置时一个一个位置的试探,还是生成小正方形的放入顺序,然后按固定方法放入?

由于n为16,s最大可知是40,相比之下,我们更希望不要过多依赖于s,因此采用后者,并最终确定如下搜索方法:

对于目标大正方形(我们称作盘子),保证从上到下地放置,即对于任何一个状态,第 i 列只有前d[i]个格子已经放入正方形,而后面的格子是空的;然后对于每一种状态,都选择d值最小的一列的第一个空格作为本次放置正方形的左上顶点,然后枚举可行的正方形放入并更新受到影响的d值。容易理解这样的搜索方法是正确的。

还有一个优化不可忽视:边长相同的小正方形毫无区别,因此只需要用c[i](1<=i<=10)记录边长为 i 的小正方形当前还有多少个即可。

为了更大程度的优化,我们每一次放置正方形的过程是这样的(假设当前剩余小正方形中最大最小边长为maxl,minl):

1.找到d[i]值最小的 i=p(若有多个取编号最小的);

2.找到最大的w使得自第 p 列开始的连续w列的d值均为d[p],即求最大的w使d[p]=d[p+1]=...=d[p+w-1];

3.令 i 从min{l-d[p],maxw,maxl}至minl倒序循环枚举将要放置的小正方形边长,若c[i]!=0转入4;

4.对所有p<=j<=p+i-1,令d[j]+=i, c[i]--, 更新maxl,minl, 放置下一个小正方形,恢复d[i],c[i],maxl,minl值,返回3。

代码如下:
#include<iostream>
using namespace std;
int c[11],d[41],s,n,sum;
bool ok;
void dfs(int a)
{
    
int i,j,put,p;
    
bool f;
    
if(a==n) {ok=true;exit;}
    
for(i=1,put=41;i<=s;i++)
        
if(d[i]<put) {put=d[i];p=i;}
    
for(i=10;i>=1;i--)
        
if(c[i]>0 && put+i-1<=&& p+i-1<=s)
        
{
            
for(j=p,f=true;j<=p+i-1;j++)
                
if(d[j]>put) {f=false;break;}
            
if(f)
            
{
                
for(j=p;j<=p+i-1;j++) d[j]+=i;
                c[i]
--;
                dfs(a
+1);
                c[i]
++;
                
for(j=p;j<=p+i-1;j++) d[j]-=i;
            }

        }

}

int main()
{
    
int t,it,i,tp;
    cin
>>t;
    
for(it=1;it<=t;it++)
    
{
        cin
>>s>>n;
        memset(c,
0,sizeof(c));
        
for(i=1;i<=40;i++) d[i]=1;
        sum
=0;
        
for(i=1;i<=n;i++)
        
{
            cin
>>tp;
            c[tp]
++;
            sum
+=tp*tp;
        }

        
if(sum!=s*s) ok=false;
        
else {ok=false;dfs(0);}
        
if(ok) cout<<"KHOOOOB!"<<endl;
        
else cout<<"HUTUTU!"<<endl;
    }

    system(
"pause");
    
return 0;
}

posted @ 2008-10-26 01:32 Headacher 阅读(1816) | 评论 (2)编辑 收藏
 
hoho,今天测试赛结束了,有惊无险a掉了所有的水题。没想到是这么基础的题。明天还有辩论赛,还要准备台词,11月初还有期中考试,要复习课本,12月的四级……最近很忙了……要留在基地!加油!
posted @ 2008-10-23 20:56 Headacher 阅读(108) | 评论 (2)编辑 收藏
仅列出标题
共16页: First 8 9 10 11 12 13 14 15 16 
CALENDER
<2024年7月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

公告

留言簿(8)

随笔分类

随笔档案

ACM Teammates

The One

搜索

  •  

积分与排名

  • 积分 - 130043
  • 排名 - 194

最新评论

阅读排行榜

评论排行榜


Powered By: 博客园
模板提供沪江博客