SWERC 2022-2023 - Online Mirror B, G
创始人
2024-05-28 22:56:35
0

目录

    • B. Vittorio Plays with LEGO Bricks(动态规划)
      • 题意:
        • 输入1:
        • 输出1:
        • 输入2:
        • 输出2:
      • 解题:
      • 代码:
    • G. Another Wine Tasting Event
      • 题意:
        • 样例输入1
        • 输出1
        • 样例输入2
        • 输出2
      • 题解:
      • 代码:

B. Vittorio Plays with LEGO Bricks(动态规划)

题意:

给你 nnn 个数,代表坐标,还给你一个 hhh,问需要多少个 2 * 2 的小方格来做底座,才能让这 nnn 个坐标都可以达到 hhh 高度。

输入1:

4 0
2 7 11 13

输出1:

0

输入2:

4 100
2 7 11 13

输出2:

107

解题:

根据题目给你的nnn的范围和描述不难想出是一个 n3n^{3}n3 的动态规划问题, 然后 n3n^{3}n3 的动态规划首先想到的就是区间动态规划。
定义dp[i][j]dp[i][j]dp[i][j]为,从下标 iii 到下标 jjj 的最小需要的方格数,设 kkk 为分割点,leslesles 为两区间公共部分

dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]−lesdp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] - lesdp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]−les

接下来分析 leslesles 怎么去算,首先这个题里面要从底部到目标点的最短路径肯定是等腰三角形的斜边外加 yyy 轴的移动,所以 xxx 轴的距离肯定和 yyy 轴的距离有一部分的重合,另外 yyy 轴的部分的最小值就是我们要求的 leslesles , 原因就说当两部分合并的时候一定有重合的部分,斜着的轨迹不可能重合,所以 yyy 轴一定有重合的地方,也就是最小值了。就就是说 leslesles肯定是和端点有关,不难分析出来就是中间位置做公共部分,那么 leslesles 是 hhh 和左端点(右端点)的差,然后我们通过实例可以发现用用差值大的和用差值小的结果是一样的,那么就用大的,因为式子里面是减。那么 leslesles 就推出来了。
les=h−(a[j]−a[i]−1)/2les = h - (a[j] - a[i] - 1) / 2les=h−(a[j]−a[i]−1)/2

代码:

#include using namespace std;typedef long long LL;
const int N = 5e5 + 10;LL a[N];void solve()
{LL n, h;cin >> n >> h;for (int i = 1; i <= n; i ++ ) cin >> a[i];vector> dp(n + 1, vector(n + 1, 1ll << 60));for (int i = 1; i <= n; i ++ ) dp[i][i] = h;for (int k = 2; k <= n; k ++ ){for (int i = 1; i + k - 1 <= n; i ++ ){int j = i + k - 1;int g = max(0ll, h - (a[j] - a[i] - 1) / 2);for (int x = i; x < j; x ++ ) dp[i][j] = min(dp[i][j], dp[i][x] + dp[x + 1][j] - g);}}cout << dp[1][n] << '\n';
}int main()
{int T = 1;while (T -- ){solve();}return 0;
}

G. Another Wine Tasting Event

题意:

nnn 个评委,还有一个由W和R组成的字符串,字符串的长度为2∗n−12 * n - 12∗n−1,问nnn个不同的连续的子字符串的最大W含有量是多少。

样例输入1

5
RWWRRRWWW

输出1

2

样例输入2

1
R

输出2

0

题解:

长度为 2∗n−12 * n - 12∗n−1 的字符串,还要nnn个不同的连续的子字符串,那肯定用长度为 nnn 就可以做到了,所以只要注意一下末尾边界处理就可以了,具体看代码理解吧。

代码:

#include using namespace std;#define IOS                      \ios::sync_with_stdio(false); \cin.tie(0);                  \cout.tie(0);typedef long long LL;
typedef pair PII;const int N = 2e6 + 10;void solve()
{int n;string s;cin >> n >> s;s = ' ' + s;int now = 0, ans = 0;for (int i = 1; i <= 2 * n - 1; i ++ ){if (s[i] == 'W') now ++;// cout << now << '\n';ans = max(ans, now);if (i >= n) now -= (s[i - n + 1] == 'W');}cout << ans << '\n';
}int main()
{IOS // ios 优化一下,不然1e6的数据要被卡int T = 1;// cin >> T;while (T -- ){solve();}return 0;
}

相关内容

热门资讯

台资企业上市政策说明和经验交流... 12月19日,由国务院台办经济局、中国证券监督管理委员会港澳台事务办公室指导,全国台企联、深圳市台办...
“体重立法”引热议,健康促进条... 经浙江省人大常委会批准,《杭州市全民健康促进条例》(以下简称“《条例》”)将于明年1月1日起正式施行...
华映科技:股东华映百慕大因纠纷... 雷达财经 文|冯秀语 编|李亦辉 12月19日,华映科技(证券简称:华映科技,证券代码:000536...
成都离婚律师排名与口碑:胡静律... 在成都,当人们面临离婚纠纷时,寻找一位靠谱、专业且口碑良好的离婚律师至关重要。离婚律师的排名情况、口...
科普挂:一文搞懂“假飞入境澳门... 厚积薄发 启行千里 导 读 近年来,一种被称为 “假飞入境澳门” 的行为模式,在内地与港澳出入境管...
提升涉外法律服务能力 守牢监狱... 本报讯(记者 陈浩)12月19日,副省长、省公安厅厅长郑海洋到郑州市调研涉外法律服务、监狱安全稳定等...
抓获127人!警方摧毁横跨13... 据辽宁沈阳市公安局网站12月19日消息,日前,沈阳市公安局禁毒支队依托“1+4+N”现代警务运行体系...
广东省突发事件应对条例 广东省第十四届 人民代表大会常务委员会 公 告 (第70号) 《广东省突发事件应对条例》已由广东省第...
24万彩礼当场返还!安康瀛湖法... 本平台法律服务由 陕西邦彦律师事务所 提供 12月17日,汉滨法院瀛湖法庭内暖意融融,一起僵持多日的...