1079: [SCOI2008]着色方案Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 1123 Solved: 707
Description有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。所有油漆刚好足够涂满所有木块,即c1+c2+…+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统...
分类:
其他好文 时间:
2015-07-29 21:26:42
阅读次数:
104
1087: [SCOI2005]互不侵犯KingTime Limit: 10 Sec Memory Limit: 162 MB
Submit: 1991 Solved: 1185
Description在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。Input只有一行,包含两个数N,K ( 1...
分类:
其他好文 时间:
2015-07-29 19:29:29
阅读次数:
141
前言
4个题里有两个SCOI的题,还都是2005年的。
题目
一、整数的表示
任何一个正整数都可以用2的幂次方表示.例如:137=27+23+20137=2^7+2^3+2^0同时约定次方用括号来表示,即aba^b可表示为a(b)a(b)由此可知,137可表示为:2(7)+2(3)+2(0)2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)3=2+207=2^2+2+2^0...
分类:
其他好文 时间:
2015-07-14 18:18:11
阅读次数:
109
做此题的原因
题号美
题目大意给出一个序列,支持一堆操作(具体看下面)。让你维护它。思路U x y:我们需要可并堆来将两个堆合并。
A1 x v:将这个点从堆中拽出来,改了之后再合并回去。
A2 x v:在堆顶打标记。
A3:记录一个全局变量记录。
F1 x:将这个点到堆顶的链上的所有标记下传,之后返回自己的大小。
F2 x:返回堆顶。
F3:用一个堆(set也行)维护所有堆顶的元素。需...
分类:
其他好文 时间:
2015-03-05 14:54:05
阅读次数:
158
为了搞SCOI的几道题先做水数位。之前听过课,半懂不懂吧,现在清楚了些。这类题一般满足区间减法,即只需要我们求出(1,n)即可,然后打表也是为了sovle(DataType)服务。先想好怎么计算,再去想怎么打表。计算是一般存在这样的问题,就是比如n=abcdef,当a=6时,6开头的不能全算,那就只...
分类:
其他好文 时间:
2015-02-21 21:03:04
阅读次数:
172
题目大意:给出一个整数,问吧这个整数分成任意多个正整数只和的最大乘积是多少。
思路:根据小学奥数的基本知识,我们要吧这个数字分成尽量多个3。然后这个题就解决了。
CODE:
#include
#include
#include
#include
using namespace std;
struct BigInt{
int num[10010],len;
...
分类:
其他好文 时间:
2015-02-07 13:11:45
阅读次数:
119
题目大意:给出平面上的一些点,求其中四个点的最大四边形的面积。
思路:简单yy一下发现这些点肯定都在凸包上,先求个凸包。然后直接暴力肯定是不行的,我们需要一个O(n^2)的做法,比较简单的想法是枚举最后要求的四边形的一条对线,那么这个四边形就被分割成了两个三角形,剩下两个点与这条线组成的三角形的面积和就是答案。
按照旋转卡壳的思想不难发现,这两个点都是单调的。所以枚举对角线然后扫n圈就...
分类:
其他好文 时间:
2015-01-22 09:29:32
阅读次数:
192
题目链接:BZOJ - 1026题目分析这道题是一道数位DP的基础题,对于完全不会数位DP的我来说也是难题..对于询问 [a,b] 的区间的答案,我们对询问进行差分,求 [0,b] - [0,a-1] 的答案。这样就化繁为简了。具体过程见代码中的注释。代码#include #include #inc...
题目大意:给出平面上两条线段,在这两条线段上走有一定的速度,在其他的平面上走也有一定的速度,问从A点到D点最少需要多少时间。
思路:好像是三分吧,大概感受一下吧,反正也不会证。
CODE:
#include
#include
#include
#include
#include
#include
#define EPS 1e-7
#define INF 1e1...
分类:
其他好文 时间:
2015-01-15 10:56:28
阅读次数:
220
题目大意:给出一个字符串,在不改变这个字符串的内容的情况下可以将它进行折叠,具体见题里说的吧。问这个字符串最短可以折叠成多长。
思路:数据范围才100,怎么暴力怎么搞。首先是一个区间DP,设f[i][j]为字符串从i开始到j最短可以折叠成多短。要用到体中的折叠的方法,其实只需要暴力枚举这一段折叠成几段,然后用hash判定一下就行了。
当然不要忘了正常的区间DP。
CODE:...
分类:
其他好文 时间:
2015-01-14 11:06:20
阅读次数:
208