#SCOI2009

BZOJ1297 [SCOI2009]迷路 矩阵乘法

  有向图有N个节点,从节点0出发,他必须恰好在T时刻到达节点N-1。现在给出该有向图,问总共有多少种不同的路径吗?注意:不能在某个节点逗留,且通过某有向边的时间严格为给定的时间。  矩阵乘法。  把一个点拆成9个,分别是time+0,time+1,time+2,...,time+8。  然后根据输入转移,构建矩阵即可...

BZOJ1296 [SCOI2009]粉刷匠 动态规划 分组背包

  有N条木板需要被粉刷。每条木板被分为M个格子。每个格子要被刷成红色或蓝色。windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。每个格子最多只能被粉刷一次。如果windy只能粉刷T次,他最多能正确粉刷多少格子?一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。   对于每一个木板,我们...

BZOJ1295 [SCOI2009]最长距离 最短路 SPFA

  有一块矩形土地,被分为N*M块1*1的小格子。有的格子含有障碍物。如果从格子A可以走到格子B,那么两个格子的距离就为两个格子中心的欧几里德距离。如果从格子A不可以走到格子B,就没有距离。如果格子X和格子Y有公共边,并且X和Y均不含有障碍物,就可以从X走到Y。如果可以移走T块障碍物,求所有格子间的最大距离。保证移走T...

BZOJ1293 [SCOI2009]生日礼物 离散化

  彩珠有N个,分为K种。每一个彩珠有一个对应的坐标。坐标上可以没有彩珠,多个彩珠也可以出现在同一个位置上。小西希望一段彩带中能包含所有种类的彩珠。帮助小西计算这段彩带这个最短的长度。彩带的长度即为彩带开始位置到结束位置的位置差。   水题。  对于读入的,先离散化一下。  然后L和R卡过去就可以了。直接看代...

BZOJ1026 [SCOI2009]windy数 数位dp

   求区间[A,B]中有多少数满足下面的条件。  条件:该数相邻两位之差不小于2。   简单的数位dp。  一个记忆化dfs就解决了。  dp[i][j]表示剩余i位数,第i+1位为j的windy数总数。  太简单了,不会的话自己看代码。1#include<cstring>2#incl...

BZOJ 1293: [SCOI2009]生日礼物【单调队列】

TimeLimit:10Sec  MemoryLimit:162MBSubmit:2534  Solved:1383[Submit][Status][Discuss]小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩...

BZOJ 1026: [SCOI2009]windy数

简单的数位dp直接用dfs的模板写坑点:0001是合法的,但是之前没考虑前导0导致将其判为不合法的#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intbit[50];llf[50][55];lldfs(intpos,intlast,bo...
代码星球 ·2020-04-04