摘要: 这道题又是看了题解。 思想大概是:我们枚举到i位数有j个1,用杨辉三角形求组合数,第i行第j列就是C(i-1,j-1),用sum[i][j]表示i位数0..j个1的所有的数的个数,那么sum[i][j]=C(i,0)+C(i,1)+......+C(i,j),那么当我们求第k个数时,当sum[i-1 阅读全文
posted @ 2015-12-21 22:58 Sun_Sea 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这题一开始我想了又想,谁知道最后竟然一个暴力的高精度过了,官方的题解好像是用了一些数学的方法。 /* ID:abc31261 LANG:C++ TASK:fact4 */ #include<cstdio> #include<cstring> #include<iostream> using name 阅读全文
posted @ 2015-12-16 22:40 Sun_Sea 阅读(101) 评论(0) 推荐(0) 编辑
摘要: dp思想,用num[1..n]来记录每个邮票的面值,然后f[i]表示i这个面值要用多少张邮票。转移过程:f[i]=min(f[i-num[j]]+1,f[i]),然后最后要输出i-1(因为退出条件是i不满足)。 /* ID:abc31261 LANG:C++ TASK:stamps */ #incl 阅读全文
posted @ 2015-12-08 23:07 Sun_Sea 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 简单一个暴搜就能过了,但是我的双关键字快排我也是醉了(用c++的sort不会写双关键字排序,只好自己写,可是写得特别拙),代码混乱(看来我应该分开一个个函数写的) /* ID:abc31261 LANG:C++ TASK:contact */ #include<cstdio> #include<cs 阅读全文
posted @ 2015-12-08 23:02 Sun_Sea 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 这道题想了很久想不到,只好看题解(在下服气),题解是666的,不用多说上代码。 第一个是官方题解:记录下到第i-1个丑数时,每一个素数枚举到哪一个丑数,然后直接从那个丑数继续开始枚举。 第二个是手写堆+set判重,每一次取出最小的数作为第i个丑数,然后枚举每一个素数扩展新元素加入堆,再用set判重。 阅读全文
posted @ 2015-12-05 15:10 Sun_Sea 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一开始想把他们分成一件件来做01背包(是在下输了),然后发现直接来一个完全背包就可以了(严重打击自信心),然后再来一个大牛的实用优化(但貌似我写得很拙),看来我还是太年轻了。 /* ID:abc31261 LANG:C++ TASK:inflate */ #include<cstdio> #incl 阅读全文
posted @ 2015-11-30 23:06 Sun_Sea 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 是一道最小生成树的模板题,顺便学习了一下刘汝佳大大的间接排序和Kruskal算法。 /* ID:abc31261 LANG:C++ TASK:agrinet */ #include<cstdio> #include<cstring> #include<algorithm> #include<iost 阅读全文
posted @ 2015-11-29 23:01 Sun_Sea 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Noip2015提高组总结 Noip2015如风般就过去(风一样的美男子),只留下我们在那里暗自神伤。 Day0 坐在车上,看着外面的风景,一想到明天就要被屠宰,我的心情是崩溃的。但幸好,车上有位师兄(代号:红薯)开了热点,我的心情向好的方向前进了一大半(他的流量也用去了一大半)。 到了之后,欢乐时 阅读全文
posted @ 2015-11-28 20:02 Sun_Sea 阅读(115) 评论(0) 推荐(0) 编辑