- 博客(25)
- 收藏
- 关注
原创 UVa12171 Sculpture 离散化+搜索
思路:一开始看到这么麻烦的题,又是三维又是坐标,不知从何下手,直接就去看的紫书的分析+代码,能看懂也算一点进步吧。思路就是在这个边界条件的立方体中除长方体部分外全部充满空气,所以长方体坐标的存储从1开始,0为边界空气。但是有500*500*500的数组遍历起来一定会TLE,所以采取离散化的思想:最多50个长方体,那个全在一个方向的话也就2*50个坐标需要保存,就变成100*100*100的遍历了。
2017-09-23 08:40:42 399
原创 CodeForces-Vanya and Label
题意:输入一串字符s,每个字符对应一个数字,求这个字符串&另一个字符串等于s本身的数量,字符s和满足要求的另一个字符在&前后位置算两种。思路:看官方题解的#include#include#include#include#include#include#include#include#include#include#define FIN freopen("input.tx
2016-06-08 10:57:35 235
原创 51nod更难得矩阵取数
思路见51nodLearning。代码:#include #include #include #define FIN freopen("input.txt","r",stdin)using namespace std;const int MAX=205;int N,M;int a[MAX][MAX],dp[2*MAX][MAX][MAX];int main(){ //FIN
2016-04-24 21:56:03 247
原创 poj-3190-Stall Reservation
题意:o-思路:首先我是很暴力的贪心,然后意料之中TLE。然后参考网上的优化,用了优先队列。代码附上:#include #include #include #include #include #define FIN freopen("input.txt","r",stdin)using namespace std;typedef long long ll;const int
2016-04-24 14:06:41 278
原创 poj-1328-Radar Installation
题意:一个直角坐标上,x轴上方为海域,x轴为海岸线,现给你n个海岛的坐标,问你最少在海岸线安装多少个radar可以覆盖所有海岛。思路:对每个海岛进行预处理,把坐标转换成其能被radar覆盖到的最左最右的区间端点,这就转换成了区间选点问题。代码附上:#include #include #include #include #define FIN freopen("input.txt
2016-04-24 10:31:58 257
原创 51nod-dp入门-最大子矩阵和
思路见51nod。代码附上:#include #include using namespace std;typedef long long ll;const int MAX=510;int m,n;ll a[MAX][MAX],c[MAX];int main(){ while(~scanf("%d%d",&m,&n)){ for(int i=0;i<n;i++){
2016-04-23 20:00:45 629
原创 51nodLearning-dp入门之循环数组的最大子段和
思路:51nod上很详细,我就不讲了直接上代码:/*我的断点就去最后的那个,方便求普通的最大子段和#include #include #include #define FIN freopen("input.txt","r",stdin)using namespace std;typedef long long ll;const int MAX=50005;int n;ll
2016-04-23 19:58:04 233
原创 poj-2376-Cleaning Shift
题意:给定n和T,n代表牛的头数,T代表要覆盖的区间1~T。思路:贪心,区间覆盖问题。很久没写了,细节卡了我好久,忧伤!!代码附上:#include #include #include #include #include #include #include #include #define FIN freopen("input.txt","r",stdin)using
2016-04-23 13:14:02 260
原创 poj-3050-Hopscotch
题意:0-思路:直接暴力枚举所有状态,不多说,但我刚写的时候开了个全局的1e6的数组来判断是否重复出现,一直运行错误,很不解。后面用set替换了这个数组,set还能去重很方便。代码附上:#include #include #include #include #include #include #include #include #define FIN freopen("
2016-04-23 10:26:27 198
原创 poj-2718-Smallest Difference
题意:0——思路:因为要找给定序列分成两部分之间的最小差,所以可以肯定两数应该平分这个序列(不知道你们能不能理解这个“平分序列”0.0)。所以我是以序列总数的一半为上界进行回溯的。代码附上:#include #include #include #include #include #include #include #define FIN freopen("in
2016-04-23 10:17:05 246
原创 poj-3669-Meteor Shower
题意:0-思路:输入时先预处理,我定义一个结构体(包含vis检测是否有陨石掉在此格,time掉落时间),所以处理完之后,只需搜索vis为0即没有陨石掉落的地方即可。代码附上:#include #include #include #include #include #include #include #define FIN freopen("input.txt","r",std
2016-04-23 10:05:42 390
原创 poj-3009-Curling2.0
题意:0——思路:直接dfs没什么好说的。每次停止只能是碰到石头或到终点,而碰到石头会导致石头消失。自然就会想到回溯法代码附上:#include #include #include #include #include #include #include #define FIN freopen("input.txt","r",stdin)using namespace std
2016-04-23 10:03:25 222
原创 poj-3187-Backward Digit Sums
题意:O-思路:直接dfs回溯,我第一次直接过了样例,但是wa了。我很是不解,试了多组简单数据都正确,后面请教了学长才发现错误所在。只能说我RP太好,样例总是能过。代码附上:#include #include #include #include #include #include #include #define FIN freopen("input.txt","r",s
2016-04-22 23:16:38 243
原创 HDU-1010-Tempter of the Bone
今天又get到了新知识:奇偶剪枝法(百度有详细介绍),对于路径的寻找又深一步学习了题意:注意门是到点才会开,不是T是时间内开,所以只能刚好走到才会出去,不然Door那块会消失就出不去。所以一定抓住“刚好”T时到达。思路:BFS的看了上面题意就知道错了吧。这里不是求最短路径。所以我的方法是DFS+奇偶剪枝。代码就不解析了,不懂得百度慢慢理解。代码附上:#include
2016-04-20 17:16:31 306
原创 HDU-1007-Quoit Design
这题刚开始做时,可能脑袋有点鱼!!!竟然第一次写了个二分(有点逗),然后发现不用猜答案,直接找最小的就哦了。之后就枚举(复杂度爆炸)都是TLE,最后套了个分治最小点对的模板过得。思路:分治,合并。首先按X从小到大排序,从中间点取两边不大于D的范围内的点,D是不断更新的目前最小距离。然后把取到的点按y排序(x之间的距离已经能保证小于目前最小距离了),然后枚举每个点枚举到离他Y距离小于D的最远
2016-04-20 10:12:22 317
原创 浮点数-UVa-做题反思
这道题很然我有感触,碰到这种题总是手足无措。思路是借鉴网上的,这里只是我的反思。1.打表查询2.精度问题的解决3.学习对题目进行分析,有的计算不能直接算,但是有效分析之后就可以间结算出。4.学会有STL简化代码代码:#include #include #include #include #include #include #include #inclu
2016-04-19 15:26:28 261
原创 【dp】+免费馅饼
题意:略(注意时间不一定按从小到大的顺序)。思路:用dp数组倒着推。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define fuck(x) cout<<"["<<
2016-03-18 20:35:50 253
原创 贪心&Packets
题意:一个快递公司有1*1,2*2,3*3,4*4,5*5,6*6的6种同样高度的包裹,快递公司为了节约盒子,打算全用用6*6规模的盒子派送,多组输入,每次输入6种类型的包裹数量;求出打包所有包裹所需的6*6的盒子的最小数量。思路:借鉴了网上大牛的思路。1。每个6*6的盒子如果放入一个5*5的包裹就只能放11个1*1的包裹了。2。如果放入一个4*4的包裹,可以放入5个2*2的包裹或只放
2016-01-24 15:48:09 471
原创 贪心&Moving Tables
题意:有一条两边对称排满房间的走廊。要在这些房子之间搬动桌子,而走廊只够一个桌子的宽度,所以意味着同时进行的搬桌子的区间不能交叉。给出任务次数N和任务的起始房间和目标房间。求完成任务的最少时间,从任意两个房子之间搬动的花费时间为10分钟。思路:先把给出的任务统一按从小号房子大号房子记录,如果一个任务的左端点为偶数将其减1,右端点为奇数将其加1;然后将所有任务区间按区间左端点从小到大排序,之后按
2016-01-24 15:28:40 258
原创 贪心&Muddy roads
题意:某农夫想给一直路上的水坑铺好木板,给出所拥有的每一块木板的长度L,和水坑的数量N;之后N行乱序给出每个坑的所在区间,(每个坑得区间必定不会覆盖,(3,6)和(6,9)这样的不算覆盖)。要求求出要完全铺满所有坑所需的最小木板快数。思路:把区间从小到大排序从最小的端点开始铺,每铺完一个区间,判断木板右端点是否超过了下一个区间的左端点,如果超过记录这个点,下一次以它为起始点开始铺,一直下去
2016-01-24 15:26:37 519
原创 贪心&Shopaholic
题意:Lindsay是一个购物狂,某商店进行一个促销活动,每买三件东西,其中最便宜的一件免费。很明显的贪心题。思路:对所有物品的价格进行排序,从大到小三个三个一次的买,累加每次的最便宜的一件,直到剩下的恰好选完或者不足三件(注意不足三件不满足活动要求)。累加的和为answer.上代码:#include#include#include#includeusing namespace
2016-01-24 15:03:26 311
原创 贪心&FatMouse' Trade
题意:FatMouse有M pounds的猫食,用来雇猫保护Java豆,让后给出N个房间的Java豆的数量和保护所有Java豆所需花费的pounds的数量。每间房可以不用保护所有的Java豆(可以只花一部分pounds来保护一部分Java豆),目的是让FatMouse最后尽可能多的保护Java豆,相信看都这都知道这是一个部分背包问题。思路:算出每间内房子的雇佣猫的性价比,然后将其排序;从性价比
2016-01-24 14:42:35 236
原创 贪心&合并果子
题意不用多说了。思路:哈夫曼编码的思路,保证每次合并的两队果子分别为所有堆得最小和次小。注意直接一次排序递加的思路是很危险的0.0.下面上代码:#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;//typedef pair
2016-01-24 14:36:17 866
原创 贪心& 今年暑假不AC
题意很清晰,在给定的时间段中选出 最多的不交叉的时间段,很裸的贪心策略;思路:直接按时间段右端点排序,然后从第一个开始选不交叉的区间即可。下面是代码:1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536
2016-01-24 14:32:41 270
原创 二分&Gadgets for dollars and pounds
J - Gadgets for dollars and poundsTime Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionNura wants to buy k gadgets. She has only s b
2016-01-22 16:45:12 370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人