poj2263 数据弱,方法多
http://poj.org/problem?id=2263
题目很简单:
在无向图的某两点间找到一条通路,使得路上的最短边最大,输出最大的最短边长度。
数据超级弱
想法:
1宽搜,TLE,改成DP可以过,可以用floyed直接搞
2深搜,搜的时候把最短边加到状态里面去 (数据不给力,24ms)
3dijkstra
4二分最大边长度,
5按边长度从大到小排序,并查集,原点和终点合并为一个集合时边的长度就是最大的最短边长度。
6也有人用网络流搞,我不会。
由于数据弱,几乎看不出来以上方法的优劣,二分似乎慢一点。
弱题也有弱题的好处啊,思路百花齐放!
我的成长日记
岁月就像一条河,
左岸是无法忘却的隐隐忧伤,
右岸是值得把握的青春年华,
中间飞快流淌的,是我们成长中最美好的记忆。
2006-10-31,我在百度空间安了家。
到现在,我已经拥有105个好友,有110人关注了我。一共有40506人访问了我的主页!
2006-10-31,我学会了上传照片,看这是我的第一张照片,到现在我已经传了1179张照片。
2006-10-31,我发表了第一篇文章:《百度空间与新浪博客的区别》。
2008-02-21,我收到了第一条留言,到现在已经有48条留言。
不知不觉,du掌柜告诉我她5岁了,我才意识到自己在百度空间已经走过了1719个日日夜夜。
在这里发生的点点滴滴,都是我永远珍藏的记忆~。
lmm333写于2011-7-16
我也不想这样
poj终于300了。
从200到300,花了多达8个月。
这八个月里:
第一个月(12月):迎接新年
shangke7788以新大一学学生身份听了ACM宣讲会。
我虽然没有在宣讲会上台讲话,但是以老队员的身份坐在台下,做了少许幕后工作。
第二个月(1月):期末
shangke7788切掉了poj的第一题。
为准备期末考试,我中断poj的刷题进度。
第三个月(2月):寒假
shangke7788以每天10题的进度高速前进。
我忽视了鱼头刷到300的要求,沉迷于php,申请免费空间,搭建自己的独立博客,同时尝试用php做了njust poj real time rank,动态显示同学们进步退步等情况,不要再麻烦地手动统计。寒假结束,real time rank做出来了,在那上面,我自己却以240题排在末位。
第四个月(3月):开学
shangke7788降到平均每天5题。
免费空间被黑掉之后,poj rank挂到njustoj beta 的服务器上,因为没有v4地址,只能ipv6访问。服务器很老(05年的PC),rank和oj一样效率地下,打开页面极为缓慢。
第五个月(4月):上半学期
shangke778的快速进步引起重视,提前进队了。
我的java课程设计作业做了njustoj contest rating,算法完全抄袭topcoder,通过oj开放的web服务获得比赛结果,算是对oj开放平台plugin功能的一个小测试。做好后没有及时重构,代码质量糟糕,现在已经很难维护。
ps:oj的核心成员teenager利用java课程设计做了njustoj分布式节点,实现了windows和linux下的判题节点与服务器的交互。
第六个月(5月):下半学期,各种比赛
shangke7788不到2个小时就切掉了校赛的4道水题,后来卡在一道数据有问题的题目上。最终排名第五。
我依靠贴模版过了第5题,罚时多5分钟,最终校赛第四,挽救了“长期不给力”表现下差的被踢出队境地,不过,复旦邀请赛是没机会的。趁机参加了njfu,nju,njupt的校赛,各种被虐。
ps:teenager发布了oj的ajax版本,美观与效率都有了很大提高
第七个月(6月):期末
shangke7788在240的数量停止刷题,开始复习迎考。
我利用.net课程设计的机会做了njust summer training automation system,重写了poj real time rank,整合了contest rating,后来集训开始又临时加上了签到、讲题等功能。由于赶工期、服务器暂时不能连外网、plugin管理功能没做好等因素,反馈不咋样,恶评如潮。
第八个月(7月):暑期集训开始
shangke已经330题,完全超越了我,而且我也追不上他的前进的脚步。
我在训练赛中表现不佳,除了倒数第一,其他末位的名次几乎拿全了。
总结:
本来有很好的机会,可是大好的时光浪费了。被学弟轻松超越,现在单挑,我已然不是对手。
马上就要大三了,我什么都不会,regional的机会也显得越来越渺茫。
工程方面,和teenager差距太大,完全不能参与核心的开发,只能乱搞点插件。
哎,我也不想这样。
可是一切毁在自己手上,又能怨谁呢?
这个暑假,心情一直不好,憋了好久,说出来希望能好受些。
望各位神牛给予迷惘中的我一些帮助,给点切实的建议把。
最近的二b错误汇总
这两天做了一些简单背包问题,竟然5道里面卡了4道。
今晚终于在友人的帮助下过了一道,是个2b错误,贴出来晒晒,明天继续搞后面几道,看看错误到底在哪里,到时候再来更新。
(1)
#include<cstdio>#include<cstdlib>#include<cstring>usingnamespace std;#define max(x,y) ((x) > (y) ? (x) : (y))#define bagSize 200010#define bagNum 15int dp[bagSize], N, VOLUMN, value[bagNum], weight[bagNum], amount[bagNum];int DAY, interset;int main() { int i, j; int T; scanf("%d", &T); while (T--) { scanf("%d%d%d", &VOLUMN, &DAY, &N); VOLUMN /= 1000; interset = 0; memset(dp, 0, sizeof (dp)); for (i = 1; i <= N; i++) { scanf("%d%d", weight + i, value + i); weight[i] /= 1000; } while (DAY--) { for (int i = 1; i <= N; ++i) { //CompletePack(weight[i], value[i]);for (int j = weight[i]; j <= (VOLUMN + interset / 1000); ++j) { dp[j] = max(dp[j], dp[j - weight[i]] + value[i]); } } interset += dp[VOLUMN + interset / 1000]; } printf("%d\n", VOLUMN * 1000 + interset); } return0;}
本高亮代码使用codeHl生成,查看详情
这个代码高亮怎么不灵了?哎
把VOLUMN换成VOLUMN * 1000就可以ac了
原因,题目说The value of a bond is always a multiple of $1 000,但是一开始给的总钱不一定是1000倍数啊,除1000乘1000,wa了一下午,伤不起啊。
(2)上午做了一场练习赛,大部分结对都是4、5题啊,我们4题,比赛12点结束,我们实现了线段树,然后交题,
这就是提交情况,第一次ce了,然后加头文件,然后再交,接着交错代码了,发现之后重交 ,ac了,可惜比赛结束了。。。
(3)一道2分水题,三十几次提交终于ac,犯了各种错误
其中,最大的错误是:
while (scanf("%d%d", &n, &k),n&&k),n==k==0时退出
改成while (scanf("%d%d", &n, &k),n||k)
输入用%f错
输出用%lf错
精度不够错
。。。 。。。
我真的是沙茶
sql查询笔记
平时只把数据库作为存储数据的工具,都是读出所有数据,然后再处理。这种把业务逻辑封装在程序中的方法可移植性比较好。
今天,为了快速实现oj暑期训练的一些功能,直接用gridview显示数据,要写若干查询语句,我竟然百度了好久才完成。整理一下资料放在这里,减少以后重构的时间。
查询语句顺序:
select...from...where...group by...having...order by...
执行顺序:
from...where...group by ...having...select...order by...
//查询今天签到的同学
select true_name from sign_in Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by true_name
//查询今天没签到的同学(使用子查询)
select true_name from user where status=0 and true_name not in(select true_name from sign_in Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by true_name)
//按今天签到次数排名
select true_name,datetime,ip_address,count(*) as num from sign_in Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by true_name order by num desc
//今天讲题
select * from teach Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
//今天讲题 按老师分组
select * from teach Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by name_teacher
//今天讲题 按老师分组 大于等于两题
select * from teach Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by name_teacher having count(*)>=1
//今天每个老师讲题次数并排序15:29 2011-06-30
select name_teacher,count(*) as num from teach Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by name_teacher order by num desc
//今天每个学生讲题次数并排序
select name_student,count(*) as num from teach Where DATE_FORMAT((datetime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') group by name_student order by num desc