摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3391(3391) http://acm.hdu.edu.cn/showproblem.php?pid=4431(4431) 3391比较简单,这里我只讲讲4431的题目意思和解法,4431会了3391就 阅读全文
摘要:
比赛网址链接:http://www.acdream.net/contest.php?cid=1010A题: 按位异或。讨论情况。C题:经典广搜。先打表存储各个数的因子。G题:可以说是规律题。常规方法nlogn肯定超时。H题:简单的二分匹配。I题:树形dfs。A题目大意:给你两个有同样多元素的集合,求一个最小的x,x异或A中所有元素的结果都落在B集合中,且形成一一映射。解题思路:关键就在于一一映射,并且先把所有的数都转换成二进制 => A,B中元素每位对应的0和1计算出来。假设第1位, A有a0个0,a1个1,b有b1个1,b0个0,如果a0==b0&&a1==b1 那么x对应的 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题目大意:给你一个体积为V的猪猪存钱罐,然后有一些体积为c,价值为w的硬币,问你如何装硬币能使总价值最大。解题思路: 这题有两点错误很容易犯。 第一:用了01背包而不是完全背包。 第二:初始化问题还没搞清楚(这里的初始化指的是不同类型的最大值初始化的条件不一样)1、题目给你的硬币数量没规定只能取一次,能取多次当然就是完全背包了,当然也有可能是多重背包,这里不讨论。2、重点在第二点了。背包进行初始化时,如果恰好完全装满,则dp[0]赋值为0,其余赋值为无穷。如果只希望价值最大,则初始化时将dp[ 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058(1058) http://acm.hdu.edu.cn/showproblem.php?pid=3199(3199)题目大意:给你四个素数2,3,5,7,只由它们四个组成合数,对这些合数从大到小进行排列,求第n个合数的大小。解题思路: 一看到这题,开始想要暴力,从1到Max进行横扫遍历,ok这题暴力没问题1171ms,因为题目给了限制n最大只有5842,如果我给的数很大呢,比如n=100000,暴力明显TLE。 所以这题我们要换种思路,因为题目只给了4个数(如果题目... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=25979题目大意:一根长L厘米的木棍上有n只蚂蚁,每只蚂蚁有个开始的位置和爬行方向,速度为1.当两只蚂蚁相撞后,两者同时掉头继续爬行,求按输入顺序给出每只蚂蚁T秒后的位置后朝向。解题思路: 1.每只蚂蚁相撞后同时掉头可以看做对穿而过,关键的问题就在于求位置的变化。 2.按位置从小到大排序,可以惊奇的发现排序后(befor数组和after数组)所有的蚂蚁相对位置并没有变化,改变的只是朝向。 1 #include <iostream> 2 #inc 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=15133题目大意:给一个周长为10000的园,圆上等距分布着n个雕塑,现在要新增m个雕塑,要求n+m个雕塑最终也等距,问如何移动这n个雕塑的部分雕塑,让其移动总距离和最小。解题思路:先计算让n+m个雕塑固定(周长是固定的),因为雕塑最终要移到这些位置。再从n+m个点中选择一个固定点,以它为起始再对n-1个点进行圆周上等距分布。这两种情况下的点不一样,可以记为黑与白,让n-1个白点移到离本点最近的黑点算出来的移动距离总和就是最小了。小知识: floor:下位 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=14074题目大意: 给你一个n个点加权无向图,要你从里面找一个路径最短的环,每个点只能经过一次 ,如果存在这样的最短环则把路径给打印出来,如果有多个,打印一个出来即可。解题思路:最小环的定义:经过一条简单路径(除起点每点只经过一次)回到起点成为环,并且环的总长度最小称为最小环。开始直接用floyd求每个点的dist[X][X],发现输出的时候问题很大,本题是floyd的扩展板。如果简单的floyd打印路径算法还不熟悉可以看看这个博客的解释,很详细。http 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1892题目大意:有很多方格,每个方格对应的坐标为(I,J),刚开始时每个格子里有1本书,然后让你统计一片区域有多少本书,还可以增加书和减少,移动书。解题思路:和一维树状数组没撒子区别。一维扩展到二维而已。需要注意的两点是:1.x,y坐标从0开始,所以存储更新的时候坐标分别加1进行更新。因为0坐标会进入死循环。 2.区间求和的时候bit数组里面存的是它整个左下角的和,所以还要进行操作(即下面的find函数)让它表示的此位置的数目。 1 #include <iostream> 2... 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4000题目大意:给出n个数,求(x<z<y)的次数 。(x,y,z一次先后出现)解题思路:题目数据量很大,暴力肯定不行的。设现在出现的位置为x,后面比它大的数有s个。s个选两个(y,z)有s*(s-1)/2种。此时yz无序。然后按题目要求x<z<y,所以还要把x<y<z除掉。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include & 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541题目大意: 开始输入一个n(表示有n颗星星)。接下来n行,每行输入一个x,y,代表星星的坐标,注意y是递增输入。求各阶段星星的等级(阶段分为0~n-1)有多少,星星等级数计算方法为本星星左下角的有的星星个数。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std; 6 7 const i 阅读全文