Biggest Number http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30851#problem/F 解题思路:DFS(检索)+BFS(探路)=强剪枝 一看就知道是搜索题,只是,要是DFS裸搜,真的会超时.时间,非常紧! 做该题的时候,要无时无刻不忘剪枝,抓住一切剪枝的机会,剪吧! (1)用flag记录当前检索的值与当前已经检索到的最大值的关系,一但有机会,就要剪掉那些检索到的值会比当前最大值要小的“残枝败叶”. (2)每次DF…
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30746#problem/D D - 平方根大搜索 UVA12505 - Searching in sqrt(n) 解题思路:求出n的平方根,去整数,化二进制,字符串子串查找. 基本思路简单,但是求平方根那里,不能直接用库函数方法,因为Math.sqrt()返回值的精度比较小.我们这里要用到的精度最高是140位.所以,求平方根的函数(中心代码转自http://blog.csdn.net/…
UVA12504 - Updating a Dictionary 给出两个字符串,以相同的格式表示原字典和更新后的字典.要求找出新字典和旧字典的不同,以规定的格式输出. 算法操作: (1)处理旧字典,将旧字典中的每对关键字及其价值从字典串中截取出来,压入容器中.用做新旧字典对比检索. (2)处理新字典,将新字典中的每对关键字及其价值从字典串中截取出来.对于每个关键字,在容器中检索相同的关键字.若检索不成功,该关键字是新字典新增的,处理存储到相关的串数组中.若检索成功,提取容器中该关键字的价值与新…
探 寻 宝 藏 时间限制:1000 ms  |  内存限制:65535 KB 难度:5   描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷宫的进出口在左上角.当然,迷宫中的通路不是平坦的,到处都是陷阱.Dr.Kong决定让他的机器人卡多去探险. 但机器人卡多从左上角走到右下角时,只会向下走或者向右走.从右下角往回走到左上角时,只会向上走或者向左走,而且卡多不走回头路.(即:一个点最多经过一次)…
C:  最舒适的路线 (并查集) #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define INF 20000000 struct point { int x, y, v; }; point node[]; ]; bool cmp(point a, point b) { return a.v < b.v;/…
题目描述 Afandi is herding N sheep across the expanses of grassland  when he finds himself blocked by a river. A single raft is available for transportation.Afandi knows that he must ride on the raft for all crossings, but adding sheep to the raft makes…
题1:1160十进制-十六进制 注意他给的数据范围 2^31,int是 2^31-1 #include<iostream> using namespace std; int main() { unsigned int n; while(scanf("%u",&n)!=EOF) printf("0x%08X\n",n); ; } 题2:1161Sums这题虽然是大数相加,但是有别于以前的大数相加,给你n(位),然后输入a,b,表示两个数的一位的数,…
Problem E Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 635    Accepted Submission(s): 111 Problem Description 在数据维护的过程中,保持高效的数据访问和修改是非常重要的工作,这个题目就需要你用高效的手段来维护一段数据并执行不同的操作. 我们首先用如下公式生成一个矩阵A:…
正赛的时候完全没看这个题,事后winterzz告诉我他想出来的解法. 首先题意是给出n个点,m次操作. 操作有一种是连接两个点,另一种是求此时再为这个图连k条边,最少和最多能有几个联通块. 最少的求法很简单,显然一条边可以减少一个联通块. 最多的求法则稍微复杂: 首先我们先将所有联通块填成完全图,这部分边是白给的. 接下来最优的连接方式显然是将最大的和次大的联通块合并,如果还有边需要连就再将其把第三大的联通块合并...一直这样下去. 这个东西我们显然可以二分,二分出将多少个联通块合并成一起能用完…
这个题,正赛的时候也没有过,不过其实已经有了正确的解法,可惜时间不多了,就没有去尝试. 题意是有n个点,i点能通向i-1,然后i和i*2.i*2+1互通. 请你构造一种路径从1能走完所有点,并且不重复经过每个点. 一开始我先考虑了有什么方法能固定地走完所有点. 然后发现 1-(2)-(4)-3-(6)-5-(10)....()为跳跃 仅当走完了之前的所有点时才跳跃,跳跃完后再回退走完所有点. 这样走的话,是可以走完所有点的. 但是这样的限制是,我们只能在n=1/2/4/6/10...这些数时走完…