E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
SCOI2009
1296: [
SCOI2009
]粉刷匠
好久没做这么水的DP题了,所以懒得优化了,好像可以压掉一维(或者好像一维数组够用了),不过我比较懒,就懒得压维了。状态转移也好像可以优化,但是我。。。咳咳。反正用最朴素的就好了,枚举刷第i次,正在刷第j块木板,要刷到第k个格子,那么自然可以从第h(0 #include #include usingnamespacestd; intf[55][55][2505],sum[55][55]; charc
nlj1999
·
2015-12-14 20:00
1295: [
SCOI2009
]最长距离
暴力SPFA。若该点有一个障碍物,则经过该点后距离+1,对于所有距当前起点的距离小于T的点,最大距离(欧几里得距离)。即得答案。#include #include #include #include #include usingnamespacestd; constintdx[4]={0,1,0,-1}; constintdy[4]={1,0,-1,0}; intmp[35][35],d[35][
nlj1999
·
2015-12-09 21:00
BZOJ1024: [
SCOI2009
]生日快乐
爆搜不解释。。。。。#include #include #include #include usingnamespacestd; doubledfs(doublex,doubley,inta) { doubleans1,ans2,ans=9999999; inti; if(a==1) { if(x
liutian429073576
·
2015-11-26 18:00
bzoj
BZOJ1293: [
SCOI2009
]生日礼物
SB题。。。。不解释#include #include #include #include usingnamespacestd; longlongFULL,now; longlongline[1000001]; charc; inlinevoidread(longlong&a) { a=0;doc=getchar();while(c'9'); while(c='0')a=(ame[line[r]
liutian429073576
·
2015-11-26 17:00
bzoj
BZOJ 1025
SCOI2009
游戏 动态规划
标题效果:特定n。行定义一个替代品1~n这种更换周期发生后,T次要(T>0)返回到原来的顺序 找到行的所有可能的数 循环置换分解成若干个,然后行位移数是这些周期的长度的最小公倍数 因此,对于一些,是将这个数分解质因数。令x=p1^a1*p2^a2*...*pk^ak。若p1^a1+p2^a2+...+pk^ak<=n,则x就是可能的排数 分组背包就可以 令f[i][j]表示用前i
·
2015-11-13 17:53
动态规划
【BZOJ】1025: [
SCOI2009
]游戏(置换群+dp+特殊的技巧+lcm)
http://www.lydsy.com/JudgeOnline/problem.php?id=1025 首先根据置换群可得 $$排数=lcm\{A_i, A_i表示循环节长度\}, \sum_{i=1}^{k} A_i = n$$ 根据lcm的定义,分解质因数拆掉$A_i=p_1^{x_1} \times p_2^{x_2} \times ... \times p_k^{x_k}$后 $
·
2015-11-13 11:33
ZOJ
【BZOJ】1024: [
SCOI2009
]生日快乐(dfs)
http://www.lydsy.com/JudgeOnline/problem.php?id=1024 果然现在弱到连搜索都不会了么。。。。。 一直想二分。。。但是无论如何也推不出怎么划分。。。 QAQ 然后暴力搜索每一次割的时候左边右边各有几块或者上边下边各有几块就行了QAQ #include <cstdio> #include <cstring> #i
·
2015-11-13 11:30
DFS
【BZOJ】1026: [
SCOI2009
]windy数(数位dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1026 我果然很弱啊。。。 考虑数位dp。枚举每一位,然后限制下一位即可。 一定要注意啊!在dfs的时候line这个要&&啊。。。。要不然wa了两发。。 #include <cstdio> #include <cstring> #include &
·
2015-11-13 11:49
ZOJ
【BZOJ】1295: [
SCOI2009
]最长距离(spfa+暴力)
http://www.lydsy.com/JudgeOnline/problem.php?id=1295 咳咳。。此题我不会做啊。。一开始认为是多源,可是有移除物品的操作,所以不行。 此题的思想很巧妙! 我们不妨将问题转换一下,对于一个点到另一个点,我们只需算出到达这个点最少需要移除多少个障碍,然后用题目给的障碍判断是否可行,然后暴力算出可行的点之间的欧几里得距离就行了orz。 T_T
·
2015-11-13 05:26
SPFA
BZOJ 1024: [
SCOI2009
]生日快乐
1024: [
SCOI2009
]生日快乐 Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。
·
2015-11-13 03:37
ZOJ
BZOJ 1025: [
SCOI2009
]游戏
1025: [
SCOI2009
]游戏 Description windy学会了一种游戏。对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应。
·
2015-11-13 03:36
ZOJ
BZOJ 1026: [
SCOI2009
]windy数
1026: [
SCOI2009
]windy数 Description windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。
·
2015-11-13 03:36
ZOJ
【水】【SCOI】 精简题解
第二弹 [
SCOI2009
]生日快乐 搜索。递归划分问题。
·
2015-11-13 02:41
题解
SCOI2009
生日快乐
题目大意:n*m的矩形,切成面积相等的n块,要求N 块的长边与短边的比值的最大值最小。n<=10. 初看这道题没有思路,虽然n<=10但是又没说只能切成整数,所以就不知道怎么捉。。二分答案又没想到怎么验证。 事实上,我没有注意到面积相等这个条件。由于只能切(不能拼),所以每次切完的面积必然是n的整数倍,这样就可以搜了。 ※注意 double r; int n=5; r=1
·
2015-11-13 02:36
sc
1026: [
SCOI2009
]windy数 (按位DP)
定义windy数:相邻数字的差至少是2的数,例如10不是windy数,而13是windy数。求给定区间中有多少windy数。区间端点范围为 [1, 2000000000] dfs写法 #include <stdio.h> #include <string.h> #define N 10 int dp[N][N],digit[N]; int dfs(int
·
2015-11-12 19:43
dp
【SCOI 2009】Windy数
1026: [
SCOI2009
]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 274
·
2015-11-11 17:04
in
【SCOI 2009】游戏
1025: [
SCOI2009
]游戏 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 178 Solved
·
2015-11-11 17:03
游戏
【SCOI 2009】生日快乐
1024: [
SCOI2009
]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 192 Solved
·
2015-11-11 17:02
sc
bzoj 1024
SCOI2009
生日快乐
一上来没思路…… 但是由于每块蛋糕面积相等,又因为每次切必须切成两半,所以每半的面积都是每块蛋糕面积的倍数。 枚举切下来的蛋糕应该还被分为多少块蛋糕,计算切割的地方,分X 和 Y, 递归搜索。 上代码: #include <cstdio> #inclu
·
2015-11-08 11:01
ZOJ
BZOJ 1296: [
SCOI2009
]粉刷匠( dp )
dp[ i ][ j ] = max( dp[ i - 1 ][ k ] + w[ i ][ j - k ] ) ( 0 <= k <= j ) 表示前 i 行用了 j 次粉刷的机会能正确粉刷的格子数 , 状态的转移很显然 , w[ i ][ j ] 表示 第 i 行使用 j 次粉刷机会能正确粉刷的格子数. 接下来考虑 w , 对于每一行 : DP[ i
·
2015-11-02 15:32
ZOJ
1026: [
SCOI2009
]windy数 - BZOJ
Descriptionwindy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?Input包含两个整数,A B。Output一个整数。Sample Input【输入样例一】1 10【输入样例二】25 50Sample Output【输出样例一】9【输出样例二】20【数据规模和约定】20%
·
2015-11-02 12:44
ZOJ
1024: [
SCOI2009
]生日快乐 - BZOJ
Descriptionwindy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。 windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成 N 块蛋糕,windy必须切 N-1 次。为了使得每块蛋糕看起来漂亮,我们要求 N 块蛋糕的长
·
2015-11-02 12:42
ZOJ
1025: [
SCOI2009
]游戏 - BZOJ
Descriptionwindy学会了一种游戏。对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应。最开始windy把数字按顺序1,2,3,……,N写一排在纸上。然后再在这一排下面写上它们对应的数字。然后又在新的一排下面写上它们对应的数字。如此反复,直到序列再次变为1,2,3,……,N。 如: 1 2 3 4 5 6 对应的关系为 1->2 2->3 3->1 4->
·
2015-11-02 12:41
ZOJ
1293: [
SCOI2009
]生日礼物 - BZOJ
Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置)。某些坐标上可以没有彩珠,但多个彩珠也可以出现在同一个位置上。 小布生日快到了,于是小西打算剪一段彩带送给小布。为了让礼物彩带足够漂亮,小西希望这一段彩带中能包含所有种类的彩珠。同时,为了方便,小西希望这段彩带尽可能短,你能帮助小西
·
2015-11-01 14:47
ZOJ
【bzoj1024】 [
SCOI2009
]生日快乐 DFS
Descriptionwindy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为X和Y的矩形蛋糕。现在包括windy,一共有N个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成N块蛋糕,windy必须切N-1次。为了使得每块蛋糕看起来漂亮,我们要求N块蛋糕的长边与短边的比值的最大值最小
LOI_DQS
·
2015-10-30 17:00
DFS
bzoj
bzoj 1026 [
SCOI2009
]windy数 数位dp
1026: [
SCOI2009
]windy数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline
·
2015-10-23 09:09
ZOJ
[BZOJ1026][
SCOI2009
]windy数
[
SCOI2009
]windy数Descriptionwindy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。
hbhcy98
·
2015-10-21 23:00
bzoj1293【
SCOI2009
】生日礼物
想了很久都没有想到。。。看了hzw的题解恍然大悟居然只是枚举起始位置,然后要取这个位置之前(之后)与它最近的k种珠子的位置的最大值作为这一个起始位置的答案,最后这些答案取min找最近的珠子:因为题目中已知Ti的珠子位置按升序排序,所以用静态链表把每一种珠子存起来,这样是尾插法,遍历的时候从大到小。同时为了方便,也需要将所有坐标排序,和遍历的顺序一样从大到小枚举起始位置,这样找之前最近比较方便。ge
zz_ylolita
·
2015-08-24 22:00
单调队列
水题 1293: [
SCOI2009
]生日礼物
本来想找点单调队列做做。。。。然而这个题并不用。。只要双指针就行了。#include usingnamespacestd; typedeflonglongLL; constintmaxn=1000000; #definemp(x,y)make_pair(x,y) pairp[maxn]; intcnt[105]; intn,kk; boolcheck(intpos) { cnt[p[pos
blankcqk
·
2015-08-10 16:00
BZOJ 1026 [
SCOI2009
]windy数 数位DP?
题意:链接方法:数位DP?解析:数位DP个鬼,明明就是数位递推首先对于这个数据范围,O(1)能过?再想想不对,9次方最大也就是9位啊!所以可以想到一种状态f[i][j]代表长度为i且首位为j的windy数然后就是乱搞递推了f[i][j]=∑f[i−1][k]且abs(k−j)>=2之后就是细节调代码按位处理了不过我有个问题啊喂为什么我所有的只有一位的值算的都不对啊?别的位就对?所以我只好无耻一点了
wzq_QwQ
·
2015-07-21 19:00
代码
方法
数据
SUM
abs
BZOJ 1026 [
SCOI2009
]windy数
1026: [
SCOI2009
]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3700&
·
2015-07-19 22:00
ZOJ
BZOJ 1025 [
SCOI2009
]游戏
1025: [
SCOI2009
]游戏 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1533 
·
2015-07-19 18:00
ZOJ
BZOJ 1023 [
SCOI2009
]生日快乐
1024: [
SCOI2009
]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1729 
·
2015-07-19 16:00
ZOJ
1026: [
SCOI2009
]windy数
数位dp,dp[i][j]中i,j分别表示位数和最高位数字#include #include #include #include #include #include #include #include usingnamespacestd; intdp[15][15];//长度为i,最高位为j voidinit(){ memset(dp,0,sizeof(dp)); for(inti=0;i=2)
acm_fighting
·
2015-07-17 09:00
dp
【BZOJ1026】【
SCOI2009
】windy数 数位DP
链接:#include intmain() { puts("转载请注明出处[辗转山河弋流歌by空灰冰魂]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/46446473"); }题解:f(i,j)表示最高i位,此位为j,的方案数。注意此数组存在前导零,比如f(i,0)。f(i,j)从f(i−1,k)随便转移。代码:#include #inc
Vmurder
·
2015-06-10 20:00
数位dp
SCOI2009
BZOJ1026
windy数
【BZOJ1293】【
SCOI2009
】生日礼物 单调性
链接:#include intmain() { puts("转载请注明出处[辗转山河弋流歌by空灰冰魂]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/46376019"); }题解:首先我们把所有元素排一下序,然后枚举最小值,那么最大值是非严格单调上升的,就是一个珠子换成其后第一个的同颜色珠子时,将更新一下最大值,而最小珠子则刚好是其后第
Vmurder
·
2015-06-05 13:00
生日礼物
单调性
BZOJ1293
SCOI2009
【BZOJ 1295】 [
SCOI2009
]最长距离
1295:[
SCOI2009
]最长距离TimeLimit: 10Sec MemoryLimit: 162MBSubmit: 945 Solved: 492[Submit][Status][Discuss
Regina8023
·
2015-03-21 17:00
SPFA
暴力
OI
bzoj
BZOJ1026 [
SCOI2009
]windy数(数位dp)
Ac了“GT考试”以后,感觉这题还是蛮基础的【题解】先预处理出数组dp、f:dp[i][j]表示:第i位填j的windy数有多少个(个位为第1位,十位为第2位……)状态转移:每次在最左边填一个数: dp[i][j]=sigma(dp[i-1][k]),0=2边界:dp[1][j]=1 从A至B计数时,若A与B位数不等,则最高位可以是0,用f[i]记录以第i位为最高位,最高位是0的wind
cjk_cjk
·
2015-01-31 19:00
数位dp
bzoj
BZOJ1025 [
SCOI2009
]游戏(置换+数论+背包)
题意真纠结题目大意:规定一种1~N的对应关系(1~N的一种排列),按这种关系将顺序序列1~N反复变换,变回1~N所经过的变换次数+1记为这种对应关系的排数,求排数有多少个 【题解】置换群的问题。对于每种对应关系,将其分解为循环节的形式,则变换次数为:各循环节长度的最小公倍数 如对应关系:1->22->33->14->55->46->6,转化后就是(123)(45)(6),排数=lcm(3,2,1)
cjk_cjk
·
2015-01-29 00:00
数论
动态规划
置换
bzoj
【BZOJ 1025】 [
SCOI2009
]游戏
1025:[
SCOI2009
]游戏TimeLimit: 1Sec MemoryLimit: 162MBSubmit: 1273 Solved: 805[Submit][Status]Descriptionwindy
Regina8023
·
2015-01-25 10:00
dp
OI
bzoj
群论
【BZOJ】【P1293】【
SCOI2009
】【生日礼物】【题解】【水题】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1293排完序扫一遍,没了最近刷水太多了唉……Code:#include #definefstfirst #definesecsecond usingnamespacestd; constintmaxn=1e6+5; typedefpairpar; intn,k,tot,ans=INT_MAX;
u012732945
·
2015-01-07 07:00
bzoj
BZOJ 1297
SCOI2009
迷路 矩阵乘法
题目大意:给定一个邻接矩阵,求1~n的边权恰好为T的路径条数考虑当所有边权都是1的时候那么显然邻接矩阵自乘T次之后a[1][n]就是答案因为当边权为1的时候a[i][j]可以表示从第i个点转移到第j个点的方案数显然这个符合矩乘的定义现在边权最大为9那么将一个点拆成9个第i个点拆成的第j+1个点向第j个点连一条边权为1的边那么i->j有一条边权为k的边等价于i向j拆成的第k个点连边#include
PoPoQQQ
·
2014-12-16 20:00
矩阵乘法
bzoj
BZOJ1297
[BZOJ 1295][
SCOI2009
]最长距离
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1295很有意思的一道SPFA题。。。。枚举这条路径的出发点(sx,sy),用dist[i][j]表示从(sx,sy)到(i,j)路径上最少要删除的障碍物的个数,然后暴力就好了妈的最后忘了去掉system("pause")结果贡献了2发RE,我SB了#include #include #i
qpswwww
·
2014-12-08 11:00
BZOJ 1296
SCOI2009
粉刷匠 动态规划
题目大意:给定n*m的木板,每个点需要刷成1和0两种颜色之一,每次只能刷一行中连续的一段,一个点只能刷一次,求T刷子最多能刷对多少个点首先对每行拆开处理令f[i][j]为用i刷子刷前j个格子最多刷对多少个点动规处理出这一行刷i刷子最多能刷对多少个点然后分组背包即可#include #include #include #include #defineM60 usingnamespacestd; in
PoPoQQQ
·
2014-11-04 17:00
动态规划
bzoj
BZOJ1296
【BZOJ】1026: [
SCOI2009
]windy数 数位DP
传送门:【BZOJ】1026:[
SCOI2009
]windy数题目分析:数位DP水题。
u013368721
·
2014-10-31 10:00
HDU
BZOJ 1295
SCOI2009
最长距离 SPFA+暴力
题目大意:给定一个棋盘,一些格子上有障碍物,可以移除T个障碍物,求移除后所有能互相到达的点对中的最大欧几里得距离m,n #include #include #include #include #defineM40 usingnamespacestd; typedefpairabcd; constintdx[]={0,0,1,-1}; constintdy[]={1,-1,0,0}; intn,m,
PoPoQQQ
·
2014-10-28 17:00
SPFA
暴力
bzoj
BZOJ1295
BZOJ 1025
SCOI2009
游戏 动态规划
题目大意:给定n,定义一个置换的排数为1~n的循环经过这个置换最少T次(T>0)可以回到原来的序列求所有可能的排数的数量将一个置换分解为一些循环,那么这个置换的排数就是这些循环的长度的最小公倍数于是对于一个数,我们验证这个数是否是排数的方式就是将这个数分解质因数,令x=p1^a1*p2^a2*...*pk^ak,若p1^a1+p2^a2+...+pk^ak #include #include #i
PoPoQQQ
·
2014-10-28 10:00
动态规划
bzoj
BZOJ1025
BZOJ 1024
SCOI2009
生日快乐 DFS
题目大意:给定一块x*y的蛋糕,切n-1刀分成n块大小相同的块,只能平行于边界切,求长宽比最大值最小虽然求最大值最小但是这题没必要二分答案……直接深搜就可以了枚举切成的两块的面积比,横竖各切一次即可本大爷读入读错了TLE半天……尼玛死的心都有啊#include #include #include #include #include usingnamespacestd; doubleDFS(intn
PoPoQQQ
·
2014-10-28 08:00
DFS
bzoj
BZOJ1024
bzoj 1026 windy数(数位DP)
1026:[
SCOI2009
]windy数TimeLimit: 1Sec MemoryLimit: 162MBSubmit: 2615 Solved: 1155[Submit][Status]Descriptionwindy
y5885922
·
2014-10-20 15:00
c
算法
ACM
BZOJ1025 [
SCOI2009
]游戏
题意:对于一些长度为n的排列,将其作为一个置换,那么可能有一个自置换的次数使其回到1,2,3,...,n的情况。求对于所有能够回到1,2,3..,n的排列,不同的次数共有多少种。思路:我们将置换划分成循环节的形式,那么我们发现最终可能的置换一定是这种形式:(2,1)(3)(5,6,4)(7)1,2->2,13->34,5,6->5,6,47->7并且,若一段的长度为L,那么在第一行下面就是每L行一
wyfcyx_forever
·
2014-10-18 15:00
上一页
1
2
3
4
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他