- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 SGU 131 状态压缩dp
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 "%I64d\n"#de
2012-03-31 18:27:24 824 3
原创 fzu 2039
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 %I64d#define
2012-03-30 21:21:31 406
原创 fzu 2038
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 %I64d#define
2012-03-30 19:58:14 606
原创 fzu 2037 卡内存的坑爹题
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 %I64d#define
2012-03-30 19:21:56 565
原创 SGU 130 Circle
sgu上搞这种题目估计是用来增长自信心的。。。否则哥真要被sgu虐死了!!擦!!#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#de
2012-03-28 19:45:13 527
原创 SGU 128 Snake
好吧。。我2了。。。我2了。。。我2了。。。。还要用并查集判断是否联通#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define
2012-03-28 19:03:13 877
原创 SGU 127 Telephone directory
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 "%I64d\n"#de
2012-03-27 16:48:21 486
原创 SGU 126 Boxes
先算出a和b的最大公约数,然后a=a/gcd;b=b/gcd; 如果a+b是奇数那么返回-1,否则继续这样搞,a+b的和每次至少比上次少二分之一,所以这个算法复杂度是O(logN)级别的,还可以证明a和b的和一定是2的n次方,这个可以从上述算法中的每一步推出~#include#include#include#include#include#include#include#in
2012-03-27 13:06:41 548
原创 SGU 125 Shtirlits
哈哈,这样的代码都能ac。。。我笑了。。。提交的时候根本没抱什么希望。。。传说中的纯手动搜索,400行啊,真难写。。。汗#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std
2012-03-27 11:40:06 689
原创 SGU 123
sgu上居然也有这种题。。。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out
2012-03-26 17:39:27 510
原创 SGU 122 The book 满足ore性质的哈密尔顿回路求法
这题ac的不容易啊,知道怎么做但是还是出现了许多错误,导致无限re。。。由题目的条件知道图满足ore性质,所以有O(n2)的算法,1000个点,不会超时~#include#include#include#include#include#include#include#include#include#include#include#include#includeus
2012-03-26 17:31:11 1361
原创 SGU 121 Bridges painting
一次性ac!!只有一种情况不可以,那就是全部连成一个环,且环上点的个数为奇数!#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#defin
2012-03-26 12:19:50 644
原创 SGU 119 Magic Pairs
119. Magic Pairstime limit per test: 0.5 sec. memory limit per test: 4096 KB“Prove that for any integer X and Y if 5X+4Y is divided by 23 than 3X+7Y is divided by 23 too.” The task is from c
2012-03-25 19:28:43 567
原创 SGU 118
本来想用大数模版暴力搞的。。。汗。。。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#defin
2012-03-25 17:16:29 529
原创 SGU 117 Counting 数论
今天难得出太阳啊,真舒服~而且还是星期六~好吧~今天的最后一题,洗洗睡咯~#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#def
2012-03-24 21:29:46 537
原创 SGU 116 Index of super-prime 数论+背包
不错的题目!数论+背包dp,dp的时候附加计入一个个数就可以了~#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64
2012-03-24 20:25:37 555
原创 SGU 115 Calendar
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 "%I64d\n"#de
2012-03-24 16:40:45 458
原创 SGU 114 Telecasting station 单峰极值函数
挺有意思的题目,我的方法是排序,然后依次扫描过去,统计起点到扫描到的位置的人数,计算出未被扫描到的人数,可以证明如果在某个位置扫描到的人数要小于未被扫描到的人数的话那么这个位置一定不是最佳的,因为如果再往右边移动一个微小距离 dx 后你会发现能够得到更小的值,故一定不是最佳位置;当你不段扫描,直到扫描到某个位置上的被扫描到的人数加起来要大于或等于剩下的人数;讨论:1.若被扫描到的人数大于剩
2012-03-24 15:51:20 676
原创 SGU 113 Nearly prime numbers
切这种水题还是挺快的~#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64
2012-03-24 14:26:25 500
原创 SGU 112 a^b - b^a 大数+二进制优化
大数模版 + 二进制快速幂优化~#include #include using namespace std;#define DIGIT 4 //ËÄλ¸ô¿ª,¼´Íò½øÖÆ#define DEPTH 10000 //Íò½øÖÆ#define MAX 100typedef int bignum_t[MAX+1];/******
2012-03-24 13:59:17 721
原创 SGU 111 Very simple problem
不解释~#include #include using namespace std;#define DIGIT 4 //ËÄλ¸ô¿ª,¼´Íò½øÖÆ#define DEPTH 10000 //Íò½øÖÆ#define MAX 100typedef int bignum_t[MAX+1];/******************
2012-03-24 13:57:14 486
原创 SGU 109 Magic of David Copperfield II
走n步,先判断距离大于n的点,删掉然后每次斜着删#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64
2012-03-24 12:22:54 901
原创 SGU 108 Self-numbers 2
sgu你敢不敢把内存搞大点!!!!!#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#defi
2012-03-23 20:50:22 566
原创 SGU 107 987654321 problem
111111111119357639380642361388888889611111111619357639880642361888888889最后几位只可能是这样#includeusing namespace std;int main(){ int n; while(cin>>n) { if(n
2012-03-23 17:29:47 738
原创 SGU 106 The equation
终于a了,这题还是比较麻烦的~wa的原因是没有考虑相除后是取它的上底还是下底。。。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#d
2012-03-23 16:34:01 675
原创 hdu 4128 Running relay ——2011ACM福州赛区H题
我用的是一种贪心算法,证明很烦,先证明每个人跑完d后要取得最优最多让剩下的两个人跑,如果选3个人或3个以上的话可以通过转换他们跑的距离来证明这种方法不是最优的,所以一定是2个人!因为我每次都是通过 ex/ey这个值来选人,还可以证明选的这两个人的ex/ey的值在所有ex/ey中一定相邻,如果不相邻还可以得出矛盾!这样就存在一个O(n)的枚举算法,不过以下算法是O(n2)的,因为是昨晚写的。。。当时
2012-03-21 21:54:11 2398 1
原创 hdu 4126 MST的最佳替换边 —— 2011ACM福州赛区F题
这题AC的挺不容易的,花了很多时间,但是我觉得做完一道这种题能学到很多东西,绝对不是刷20道甚至是100道水题能比的~这题的关键是在求出最小生成树之后求出去掉生成树任意一条边后剩下的两颗树的距离,可以证明这个距离就是最佳替换边的长度,而把原来最小生成树的边换成最佳替换边后所得到的生成树就是原图中去掉那条边的最小生成树,这个用反正法可以证明,如果新得到的树不是最小生成树可以推出原来的树也不是最小
2012-03-21 11:49:17 2653
原创 SGU 105 Div 3
这是一道很有意思的题目,不过被我用一行代码秒掉了~#includeusing namespace std;int main(int n){ while(scanf("%d",&n)!=EOF) { printf("%d\n",n/3*2+((n%3==2)?1:0)); } return 0;}
2012-03-18 15:43:04 607
原创 SGU 104 Little shop of flowers
简单的dp,细心点就可以了~#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define o
2012-03-18 15:10:14 635
原创 SGU 103 Traffic Lights
wa没有关系,冷静的找到wa的原因才是关键~这题我想复杂了,以为过马路的时候灯的颜色要一直相同,而且相同的时间要大于过马路需要的时间,那样就是个数论问题,取两个点循环时间的最大公约数,约掉之后求任意时刻相交的最大时间,挺麻烦的,然后再看了一下题,原来是只要有一个时刻颜色相同就能过去,这样就简单了不知道多少了,只要求下一个颜色相同的时间就可以了,轻松ac~#include#includ
2012-03-18 13:16:13 809
原创 SGU 102 虽然代码比较多,不过还是挺高效的~
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#ifdef _WIN32#define i64 __int64#define out64 "%I64d\n"#de
2012-03-17 18:34:51 671
原创 SGU 101 Domino 里程碑2——开始刷sgu!
sgu上的题果然超有意思,挺难的,让哥找回了刚刚接触acm时候的感觉,这样才有意思~这道题是求一个欧拉回路,差点没看出来以为是求hamilton链,超时,这种就是特殊的hamilton链能转换为欧拉回路的情况,可惜普通的hamilton链不能变成欧拉回路,能的话np就等于p了~#include#include#include#include#include#include#
2012-03-17 16:06:54 921
原创 POJ 2942 点的双连通分量
终于a了!!!我勒个去。。。往往在无数次wa后重敲一遍就能ac。。。这句话很经典~找了个ac程序对拍,结果发现那个ac程序错了,但是我交那个程序居然能ac!!我擦!!poj数据弱爆了啊!!尼玛还是专门用来卡哥的??poj上一句很欠扁的话啊,虽然哥的程序是错的,但就是能ac!。。。艹!!彻底瞎了!!!!然后又找了个ac程序对拍,自己生成的随即数据都tm有80mb了啊!!!可是答案都是一样
2012-03-14 20:20:44 1436
原创 POJ 3352 边的双连通分量
被lrj的书坑害了,上面根本没有提到边双连通分量!!居然对于双连通分量的定义就是没有割点的连通分支!!我草!!!这是点双连通!!!还缩点?缩你妹!!!点双连通分量之间的点集是会相交的,根本没法缩点!!只有边双连通分量才能缩点啊!!!每个桥就是两个边双连通分量之间的边!!!有木有!!晚上躺在床上直接想到了一点钟,终于把这个算法的每个细节都想明白了,图论的最短路和网络流确实是最水的,网络流最多就是
2012-03-13 13:44:45 714
原创 VK Cup 2012 Qualification Round 2 E 无语凝噎
世界最悲剧的事情就是小号最后比大号还牛逼。。。。。。。本来我以为提交两次如果有任何一次ac了的话就算ac。。没想到最后提交的那次会把前面的全部覆盖。。坑爹啊。。。。。哥的大号丧失资格了。。╮(╯▽╰)╭!!!#include#include#include#include#include#include#include#include#include#include#inc
2012-03-10 20:57:46 719
原创 Topcoder SRM536 div2 1000pt
此题乃dp!先排个序,dp[ x ][ y ]每次记录合并 X 次把前 Y 个公司全部合并所能长生的最大利润,有点贪心的思想,贪心确实是成立的,合并每个公司相当于对每个公司附一个权值,由于是算他们的算术平均数,那么先和并的公司最后附上的那个等价的权值就一定是最小的,而我一开始已经对利润排了序,说明最后利润低的公司的权值一定不大于利润高的公司,而恰恰最优解也一定是利润低的公司权值低,利润高的公司权值
2012-03-08 14:32:56 587
原创 VK Cup 2012 Qualification Round 1 E
先利用动态规划求出n个电话后能忽略k电话所能空间时间的最小左边界(哎!!当时还想用贪心,为啥就没想到动态规划呢!!)然后就是一个枚举过程,因为一个休息时间必将以一个电话的到来而结束,枚举4000个电话,然后就ok了!!!!说白了就tm是个水dp!!!太水了!!周五的vk一定会ak!!!#include#include#include#include#include#include
2012-03-07 15:24:29 815
原创 2012北邮腾讯创新俱乐部热身赛 B
B是很水很水的最短路,只要注意重边就ok了~~好坑爹啊,害我wa了那么多次!!!B GraphAccept:10 Submit:54Time Limit:1500MS Memory Limit:65536KBDescriptionSaerdna likes travelling, but he can n
2012-03-07 14:02:12 893
原创 2012北邮腾讯创新俱乐部热身赛 A
这场比赛打得还是挺开心的,ak了!哈哈哈~~A题是一道dp,复杂度O(n),挺经典的~A Maximum sumAccept:40 Submit:103Time Limit:1000MS Memory Limit:65536KBDescriptionGiven a set of n integers: A
2012-03-07 13:58:46 865
原创 hdu 3627
线段树?这题目明显坑爹,哪有这种线段树!!真无聊,map + set 秒掉~#include#include#include#include#include#include#include#includeusing namespace std;map > m;map >::iterator mi;set::iterator si;sets;mapyy;int
2012-03-04 21:02:10 1015 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人