- 浏览: 65951 次
- 性别:
- 来自: 北京
最新评论
文章列表
这题很简单,但还是超时和WA一次
主要是由于
1、这题输入可能是非常大的数,可能上千位,所以把输入当成了2000位的字符串来处理,转化成数字
2、还是变量初始化的问题,WA了一个,细心最重要
#include <iostream>
#include <string>
using namespace std;
int f (int n){
int sum = 0;
while((n/10) > 0){
sum += n % 10;
n /= 10;
}
sum += n;
if(sum >= 10) return f(sum);
e ...
- 2011-12-25 15:20
- 浏览 521
- 评论(0)
很经典的BFS搜索 走迷宫选取经过门最少的路线,这题POJ测试数据设计不全面,changeDir数组赋值错误也可以过。。。
主要图的数据结构存储方式和算法实现参考了http://blog.csdn.net/bobten2008/article/details/5093307
(1)首先是建图, 由于输 ...
- 2011-12-25 01:51
- 浏览 475
- 评论(0)
本题很简单,变形虫的长度合成满足一定公式,只要每次从所有变形虫当中取出最长的两只合成新虫放进长度集合即可
由于要不断取最大值,可以考虑用优先权队列或者堆
Source Code
Problem: 1862
User:
yangliuACMer
Memory: 272K
Time: 47MS
Language: C++
Result: Accepted
#include <iostream>
#include <queue>
#include <cmath>
using namespace ...
- 2011-12-24 21:41
- 浏览 363
- 评论(0)
以后一定要细心,不能再犯这个低级的错误,把WA控制在最低范围内
参考了http://www.cnblogs.com/damacheng/archive/2010/09/24/1833983.html的题目分析
题目大意:你要写一个OS,要实现磁盘碎片整理的功能。磁盘分为N个簇,一个文件可以占 ...
- 2011-12-24 20:33
- 浏览 427
- 评论(0)
这题和编程之美上面的“地板覆盖”问题有点像,不同的是,编程之美上面只需要判定能否覆盖,这题需要求出总方案数目
结题报告转自http://duanple.blog.163.com/blog/static/709717672008930104124684/
题意:给你一个h*w的矩形,用一个1*2的小矩形去填充,问有多少种填充方法,不考虑对称性。
关键点提示:
1.DFS部分
实际上是在枚举第i行的放置方法,由此便可以确定出该行及上一行的状态。
对于第i行,状态(参数next_stat)的定义是指,前i-1行完全放满,第i行的所有位置是否放置(0,1表示)组成的二进制序列,转化为 ...
- 2011-12-24 16:57
- 浏览 514
- 评论(0)
本题很简单,但是还是WA了几次,主要原因是
1、变量初始化的位置要非常小心,何时需要在下一次循环重复记录何时初始化,由于这个原因WA太可惜了
2、输出保留三位小数的格式控制一定要注意
主要算法思想如下
先求各个 ...
- 2011-12-24 11:32
- 浏览 498
- 评论(0)
本题为多重背包问题,即每种零钱的个数是有限个,求不超过目标钱数的可以组合出的最大钱数
采用DP的思想,先对目标钱数以内的所有面额做逆向遍历,初始dp[0] = true,即0元可凑出
在此基础上如果当前的stat可以凑出,那么 ...
- 2011-12-23 13:04
- 浏览 635
- 评论(0)
由于CSDN密码泄露事件大家纷纷关注起自己的互联网账号安全,隐患早已有之,只是这次暴露大了。
下面分析下明文存放密码动机分析。转自
http://shell909090.com/blog/2011/12/%e5%af%86%e7%a0%81%e4%b8%ba%e4%bb%80%e4%b9%88%e6%98%8e%e6%96%87%e5%ad%98%e6%94%be/
很早就写过一篇blog,说到过,你的密码应当一次一密,至少某些密码泄露时不至于波及太广。结果这次CSDN不幸中枪。我不去讨论多少人急急忙忙修改密码,多少人数据泄露,单说说为什么很多时候密码是明文存放的。
就我有记忆以来, ...
- 2011-12-23 11:56
- 浏览 433
- 评论(0)
转自
http://shell909090.com/blog/2011/09/%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E8%A7%84%E8%8C%83/
下面是贝壳自己总结的密码管理规范,大家可以参考一下。
概念解说
网络密码和本地密码。网络密码通常很难暴力攻击,尝试速度受到网络限制,而且尝试一定次数后还可能被管理员发现。而本地密码则相对比较容易攻击,我假定本地密码攻击可以达到每秒测试2^30个密码。
密码长度推定使用如下计算方式。使用年数乘以攻击频率,得出攻击者在密钥使用期限内能尝试的最大次数。为了安全起见,尝试范围不应当超过总体密码空 ...
- 2011-12-23 11:52
- 浏览 365
- 评论(0)
这道DP比较简单,要注意题目已经将价格和数量升序排列了,自己不用排序
用sum[i]表示前i个等级的珍珠总数
那么初始化为前i个等级珍珠一起买,然后逐步计算前0、1 ...... i-1等级分开买的价钱,取最小即可
状态转移方程为 dp[i] = min(dp[i], ((sum[i] - sum[j]) + 10) * p[i] + dp[j]); 用一个二重嵌套循环就搞定了
Source Code
Problem: 1260
User:
yangliuACMer
Memory: 260K
Time: 16MS
Language: ...
- 2011-12-23 01:19
- 浏览 479
- 评论(0)
本题为典型的动态规划,关键找出序列比对的3个不同情况,即子问题
设d[i][j]为取s1第i个字符,s2第j个字符时的最大分值
则决定p为最优的情况有三种 p数组为分数矩阵
1、 s1取第i个字母,s2取“ - ”: d[i-1][j]+p[ s1[i-1] ]['-'];
2、 s1取“ - ”,s2取第j个字母:d[i][j-1]+p['-'][ s2[j-1] ];
3、 s1取第i个字母,s2取第j个字母:d[i-1][j-1]+p[ s1[i-1] ][ s2[j-1] ];
即dp[i][j]为上述三种情况的最大值
易犯错误
1、p数组的初始化,不细心的话容易犯错(因 ...
- 2011-12-23 00:11
- 浏览 624
- 评论(0)
2012世界末日到来,太阳系九大行星轨道出现混乱,人类无奈乘坐飞碟逃难,身为飞碟船长的你,能够保护人类几秒呢?下面是在学校里面开发的Planet2012小游戏,以前从没写过游戏,熬了两个晚上才整处女作来,别废话了,上图!
游戏初始化界面
三条生命耗尽后弹出坚持的时间
游戏下载见个人博客游戏下载地址
把两个文件放在同一个文件夹下面就可以玩了,祝大家玩得Happy:)
- 2011-12-21 00:48
- 浏览 439
- 评论(0)
还是最小生成树prim算法,套用的浙大模板
#include <iostream>
#define MAXN 28
#define inf 10000
typedef int elem_t;
using namespace std;
elem_t prim(int n,elem_t mat[MAXN][MAXN],int* pre){
elem_t min[MAXN],ret=0;
int v[MAXN],i,j,k;
for (i=0;i<n;i++)
min[i]=inf,v[i]=0,pre[i]=-1;
...
- 2011-12-21 00:35
- 浏览 430
- 评论(0)
典型的prim算法
这类题目可以稍作变形,比如POJ2421
#include <iostream>
#include <map>
#define MAXN 102
typedef long elem_t;
using namespace std;
elem_t prim(int n,elem_t mat[MAXN][MAXN]){
elem_t closeEdge[MAXN],sum=0,min;
int i,j,k;
for(i = 0; i < n; i++)
closeEdge[i] = ma ...
- 2011-12-21 00:34
- 浏览 483
- 评论(0)
这题比较简单,就是对电话号码的字符串处理并排序输出,但是实现时有几个注意的地方
1、用map存储比较方便,可以自动根据string的排序规则排序,而且题目数据恰好是<string,int>的K-V存储特点。
2、用另一个字符串重新拼接待输出地字符串比直接对输入字符串进行替换移位等操作要方便。
3、注意字符和数字的ASCII的转化。
4、‘-’的加入可以在输出的时候,输到第4个字符的时候先输出‘-’。
5、map,set,vector,deque,list等容器要熟练使用,可以参考http://www.cplusplus.com/和MSDN的文档。
#i ...
- 2011-12-21 00:31
- 浏览 505
- 评论(0)