• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LyonLys
愿意在角落唱沙哑的歌 再大声也都是给你 请用心听 不要说话 Contact me via E-mail: lyon.lys@gmail.com
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 35 下一页
2013年2月28日
uva 11627 Slalom (二分法)
摘要: uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2674 一道比较明显的二分题,主要是在二分的判断上耗费了一点时间。代码如下:View Code 1 typedef pair<int, int> PII; 2 typedef vector<int> VI; 3 typedef vector<PII> VPII; 4 5 #define REP(i, n) for (int i = 0; i < (n); 阅读全文
posted @ 2013-02-28 00:58 LyonLys 阅读(295) 评论(0) 推荐(0)
uva 10317 Equating Equations (搜索题)
摘要: uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1258 又是一道搜索,不过我用了状态压缩来做,开始的时候有两个剪枝加进去,从而3s的时限都超过了。一个是数的和的奇偶性判断,另外一个剪的不明显,那就是统计的时候正或负的和一旦超过整体和的一半时,不用继续加下去。 这道题麻烦之处主要是它的模拟,输入输出的模拟因为没想到怎么可以更简便,于是就十分暴力的处理了,庆幸这么乱都没有打错。记录一下代码:View Code 1 typedef vector&l 阅读全文
posted @ 2013-02-28 00:02 LyonLys 阅读(274) 评论(0) 推荐(0)
2013年2月26日
uva 10318 Security Panel (dfs+剪枝)
摘要: uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1259 压缩Panel的全部状态,预处理出每个位置的变化,然后dfs搜索全部情况。不过这样是会超时的,所以我在搜索的过程中加上剪枝,预判出之前的状态是否能够使得最后整个Panel充满,如果不能就尽早跳出搜索。加上小小的一个剪枝,速度提升估计了不下1000倍,由原来的超时,最后只要0.008s就完成了!代码如下:View Code 1 #define REP(i, n) for (int i = 阅读全文
posted @ 2013-02-26 21:44 LyonLys 阅读(343) 评论(0) 推荐(0)
2013年2月25日
uva 10012 How Big Is It? (greedy + enumerate)
摘要: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=953 这道题是比较简单的枚举加上贪心的题目,题意是将n个圆放进矩形内,要求圆要贴着矩形的底部,问矩形的长最小是多少。 题目需要注意的是有可能有两个半径非常大的圆夹着两个半径非常小的圆的情况,除此之外,代码都很简单。代码如下:View Code 1 #define REP(i, n) for (int i = 0; i < (n); i++) 2 #define REP_1(i 阅读全文
posted @ 2013-02-25 03:24 LyonLys 阅读(183) 评论(0) 推荐(0)
2013年2月24日
uva 10020 Minimal coverage (greedy)
摘要: uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=961 Classical greedy problem!The Code:View Code 1 typedef pair<int, int> PII; 2 typedef vector<PII> VPII; 3 #define REP(i, n) for (int i = 0; i < (n); i++) 4 5 VPII rec, out; 6 7 void i 阅读全文
posted @ 2013-02-24 22:51 LyonLys 阅读(156) 评论(0) 推荐(0)
2013年2月23日
LA 5844 Leet (dfs 搜索)
摘要: ACM-ICPC Live Archive 题意是判断两个字符串是否相同,相同的意思是将第一个串相应的字符用对应的字符串代替,如果能得到第二个串,那么就是相同。 因为代替的字符串最长只有3,所以可以简单的用搜索解决。代码如下:View Code 1 #define REP(i, n) for (int i = 0; i < (n); i++) 2 3 char sub[30][5]; 4 char buf[20], leet[100]; 5 int mx; 6 7 bool dfs(char *x, char *y) { 8 if (!*x && !*y) return 阅读全文
posted @ 2013-02-23 18:46 LyonLys 阅读(213) 评论(0) 推荐(0)
2013年2月22日
LA 5842 Equipment (状态压缩+dp)
摘要: ACM-ICPC Live Archive 根据题意,因为最多只有五种属性,所以可以通过其中几种属性是否确定了来进行DP。 有这个想法是因为整体的最大值是由某个物品的其中某些属性来确定的,dp的时候可以独立的求出那些确定了的属性的值,通过不断更新,最后找到整体的最大值。 复杂度是O(k*3^k*n),当k大于5的时候,跟等于5的时候是一样的,所以k=min(k, 5)。代码如下:View Code 1 #define REP(i, n) for (int i = 0; i < (n); i++) 2 #define REP_1(i, n) for (int i = 1; i <= 阅读全文
posted @ 2013-02-22 23:17 LyonLys 阅读(259) 评论(0) 推荐(0)
2013年2月21日
LA 4254 Processor (二分+贪心)
摘要: ACM-ICPC Live Archive 这道题搞了我两天,最终还是搞出来了! 很容易就可以发现这题是二分,不过二分后怎么贪心就稍微有点难想了。贪心的方法其实很简单,就是尽量先把结束的早的任务先尽早的完成了。如果在给定的处理器速度下不能完成所有任务,那么这个速度就还不够。 我的方法是用线段树填充尽量靠左的填充没利用的速度,根据能够填充的量,判断贪心是否能够做到。代码如下:View Code 1 #define REP(i, n) for (int i = 0; i < (n); i++) 2 3 #define lson l, m, rt << 1 4 #define rs 阅读全文
posted @ 2013-02-21 21:33 LyonLys 阅读(471) 评论(0) 推荐(0)
2013年2月20日
LA 4794 Sharing Chocolate (搜索)
摘要: ACM-ICPC Live Archive 搞了一个晚上。。一道搜索可行解的题,开始的时候理解错了,以为可以dp直接搞掂。不过仔细想了一下,发现就算是理解错题意,dp起来也是很麻烦的。。。- - 最后瞄了一下题解,调了一晚,搞掂括号放错位置的问题以后就过了。。囧。AC code:View Code 1 #define REP(i, n) for (int i = 0; i < (n); i++) 2 3 int sum[N], sz[20]; 4 bool vis[N][M]; 5 6 void input(int n) { 7 REP(i, n) cin >> sz[i]; 阅读全文
posted @ 2013-02-20 00:40 LyonLys 阅读(213) 评论(0) 推荐(0)
2013年2月19日
ZOJ 3031 Robotruck (dp + 单调队列)
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2029 搞了一个多小时的一道DP&&单调队列题。这题在ACM-ICPC Live Archive中有相似的一题,不过在LA中,每个位置的物品重量不为0,这样就限制了寻找上一层dp值的范围只在下标为i-100~i 之间,复杂度是O(CN)。可是到了ZOJ,dp值的寻找就有可能要把之前所有已经处理的状态都找一遍,这样子,同样的做法就果断超时了。 不过可以轻易的发现,dp是线性的,而且最优值是可以通过某种转换方式表示出来。同时,因为物品的发放顺序有所限制,所以可以直 阅读全文
posted @ 2013-02-19 16:30 LyonLys 阅读(215) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 35 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3