0
点赞
收藏
分享

微信扫一扫

牛牛的猜球游戏(动态规划+前缀影响)

天天天蓝loveyou 2022-02-15 阅读 30

题目连接

https://ac.nowcoder.com/acm/contest/19483/F

题面

在这里插入图片描述

思路

我们用一个 f [ i ] [ j ] f[i][j] f[i][j]表示第i个操作中第j个杯子中的球,因为我们不断地进行一个交换杯子的操作,所以我们会有一个前缀的影响,所以每次我们直接通过 r r r l − 1 l-1 l1进行一个映射就好了

代码

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5+10;

int dp[N][10];
int a[10];
int n,m;

int main()
{
	scanf("%d%d",&n,&m);
	int A,B;
	for(int i = 0;i < 10; ++i) dp[0][i] = i;
	for(int i = 1;i <= n; ++i) {
		scanf("%d%d",&A,&B);
		for(int j = 0;j < 10; ++j) {
			dp[i][j] = dp[i-1][j];
		}
		swap(dp[i][A],dp[i][B]);
	}
	while(m--) {
		scanf("%d%d",&A,&B);
		for(int i = 0;i < 10; ++i) {
			a[dp[A-1][i]] = i;
		}
		for(int i = 0;i < 10; ++i) {
			printf("%d%c",a[dp[B][i]],i==9?'\n':' ');
		}
	}
	
	
	
	return 0;
}
举报

相关推荐

0 条评论