[ SCOI 2009 ] 最长距离】的更多相关文章

\(\\\) \(Description\) 一个\(N\times M\)的网格图中有一些坏点,图是四联通的. 你至多可以拿走\(K\)个坏点,求拿走后联通的点对中欧几里得距离最大是多少. \(N,M\in [0,30]\),\(K\in [0,30]\) \(\\\) \(Solution\) 设进入一个坏点代价为\(1\),进入其他点的代价为\(0\)建图,对每个点跑单源最短路. 距离\(\le K\)的点就代表可以通过移除坏点到达,枚举一遍所有点判断然后更新即可. \(\\\) \(Co…
SCOI 2009 围豆豆 题目描述 是不是平时在手机里玩吃豆豆游戏玩腻了呢?最近MOKIA手机上推出了一种新的围豆豆游戏,大家一起来试一试吧. 游戏的规则非常简单,在一个N×M的矩阵方格内分布着D颗豆子,每颗豆有不同的分值Vi.游戏者可以选择任意一个方格作为起始格,每次移动可以随意的走到相邻的四个格子,直到最终又回到起始格.最终游戏者的得分为所有被路径围住的豆豆的分值总和减去游戏者移动的步数.矩阵中某些格子内设有障碍物,任何时刻游戏者不能进入包含障碍物或豆子的格子.游戏者可能的最低得分为0,即…
题意 边权\(w \in [1, 9]\)的\(n\)个结点的有向图,图上从\(1\)到\(n\)长度为\(d\)的路径计数,\(n \leq 10\). 题解 如果边权为\(1\)很经典,设\(f[k][i]\)表示从\(1\)到\(i\),长度为\(k\)的路径条数,则\(f[k][i] = \sum_{j=1}^n f[k - 1][j] a[j][i]\).于是可以构造初始矩阵,再乘以\(a^k\)(\(a\)为图的邻接矩阵). 现在边权不唯一,但是边权很小,可以拆点,一个点拆成\(9\…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1297 分析:如果每条边的边权都是1,那么就相当于对邻接矩阵自乘T次(因为写一下递推式子f[i][j]=∑f[i][k]*f[k][j]等价于矩阵乘法的定义).但是这题每条边的边权是1~9. 所以可以把每个点i拆成9个点形成链状:i9->i8->i7->i6->i5->i4->i3->i2->i1 (这条链中每条边的长度都为1) 然后对于原图中的…
题目链接:BZOJ - 1026 题目分析 这道题是一道数位DP的基础题,对于完全不会数位DP的我来说也是难题.. 对于询问 [a,b] 的区间的答案,我们对询问进行差分,求 [0,b] - [0,a-1] 的答案.这样就化繁为简了. 具体过程见代码中的注释. 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath>…
Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩 珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠,但多个彩珠也可以出现在同一个位 置上. 小布生日快到了,于是小西打算剪一段彩带送给小布.为了让礼物彩带足够漂亮,小西希望这一段彩带中能包含所有种类的彩珠.同时,为了方便,小西希望这段彩 带尽可能短,你能帮助小西计算这个最短的长度么?彩带的长度即为彩带开始位置到结束位置的位置差. Input 第一行包含两个…
题目大意:有一块蛋糕,长为X,宽为Y.如今有n个人来分这块蛋糕,还要保证每一个人分的蛋糕的面积相等.求一种分法,使得全部的蛋糕的长边与短边的比值的最大值最小. 思路:刚拿到这个题并没有什么思路.可是定睛一看.(n <= 10),额..能够乱搞了... 直接爆搜就能够水过.传三个參数,代表当前的长和宽,还有当前块须要被分成几块,然后随便乱搞就能够水过了.. CODE: #include <cstdio> #include <cstring> #include <ioman…
Description 题库链接 找出在 \([A,B]\) 间满足相邻位差值至少为 \(2\) 的正整数个数. \(1\leq A,B\leq 2\cdot 10^9\) Solution 数位 \(DP\) . 还是按照套路 \(f_{i,j}\) 为 \(i\) 位数,第 \(1\) 位为 \(j\) 的满足条件的个数. 然后计算的时候要注意若前面的位数已经不满足了,就直接退出. Code //It is made by Awson on 2018.2.25 #include <bits/…
[题目链接] 点击打开链接 [算法] 数位DP,注意处理前导零的情况 [代码] #include<bits/stdc++.h> using namespace std; #define MAXL 15 int n,m; ],a[MAXL]; template <typename T> inline void read(T &x) { ; x = ; char c = getchar(); for (; !isdigit(c); c = getchar()) { if (c…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1024 因为每次把一块切成两块,所以可以枚举从哪里切开,然后递归求解: 一开始用了不太对的贪心思路,想着一定去切较长边,但看来不一定. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int inf=1…