首页 > 其他分享 >CF1491B Minimal Cost 题解

CF1491B Minimal Cost 题解

时间:2023-08-04 21:59:33浏览次数:47  
标签:ch int 题解 sum CF1491B ne 移动 Minimal

调了两个多小时终于过了,交一发题解。

题目分析

如果你认真读题就会发现,这道题看似有很多种情况,但障碍的移动方式其实只有几种。

如果当所有障碍物都在一列时,可以将某一个障碍水平移动一格,再垂直移动一格或者水平移动两格,那么答案就是 v + min(u,v)。

当有通路时,则无需移动,答案就是 0。

其余情况都可以通过将其中一个障碍水平移动一格或垂直移动一格来达成目标,答案是 min(u, v)。

然后按题意模拟即可。

AC Code

#include <bits/stdc++.h>
using namespace std;
template<typename T>
T read(T x)
{
    T opt = 1, sum = 0;
    char ch = getchar();
    while(!isdigit(ch)) opt = (sum == '-') ? -1 : 1, ch = getchar();
    while( isdigit(ch)) sum = (sum << 1) + (sum << 3) + (ch ^ 48);
    return opt * sum;
}
#define read read(0)
const int N = 1005;
int a[N];
 
int main()
{
	int T;
	cin >> T;
	while(T -- )
	{
		int n, v, u;
		cin >> n >>u >> v;
		for(int i = 1;i <= n;i ++ ) cin >> a[i];
		bool xt = 1,ne = 0;
		for(int i = 2;i <= n;i++) {
		    if(abs(a[i] - a[i - 1]) >= 2) {
		        ne = 1; 
		    }
		}
		if(ne) {
		    puts("0");
		    continue;
		}
		for(int i = 2;i <= n;i ++ ) {
		    if(a[i] != a[1]) {
		        xt = 0;
		    }
		}
		int ans;
		if(xt) ans = min(u + v,v * 2);
		else ans = min(u, v);
		cout << ans << endl;
	}
	
	return 0;
}

结语

洛谷 AC 记录

CF AC 记录

标签:ch,int,题解,sum,CF1491B,ne,移动,Minimal
From: https://www.cnblogs.com/DreamerBoy/p/17607108.html

相关文章

  • CF1682B AND Sorting 题解
    首先,我们按照题意,可以用0来作为中间的一个数来交换其他两个数,这种元素肯定是有的,那就是所有不在正确位置上的所有数的AND值,我们可以开一个数组a来模拟这个过程,a_i&a_j=X,那这里的X就起到我们的0的作用了。代码:#include<bits/stdc++.h>#defineintlonglongusin......
  • [NOI2021] 路径交点 题解
    [NOI2021]路径交点题解题意给定一张\(k\)层的有向图,第\(i\)层有\(n_i\)​个顶点,第​\(1\)层与第\(k\)​层顶点数相同。对于第​​\(j\)\((1\leqj<k)\)层的顶点,只会连向第\(j+1\)层的顶点。没有边连向第\(1\)层的顶点,第\(k\)层的顶点不会向其他顶点连边......
  • [Luogu P8744] 左孩子右兄弟 题解
    题目大意给定一棵节点个数为\(N\)的多叉树,求其通过"左孩子右兄弟"表示法转化成的二叉树,高度最高是多少。解决思路首先分辨出此题目是树状DP,并了解"左孩子右兄弟"表示法的转换方式,便开始考虑DP的状态转移方程。状态由于每个节点由\(1\)至\(N\)编号,那么就使用\(dp_{k......
  • 【题解】[2023牛客多校] Distance
    题目传送门:[2023牛客多校]Distance题意对于任意两个元素个数相同的set:A、B,每次可以执行以下两种操作之一:将A中的任意元素加一将B中的任意元素加一\(C(A,B)\)含义为将\(A、B\)改变为完全相同的set所需要花费的最小次数;初始给你两个set:\(S、T\),计算\(\sum_{A\subs......
  • P4795 [BalticOI 2018] 基因工程 题解
    题目传送门:Click。蒟蒻看见这道题,想了足足一个小时,过后顿有所悟,故作此篇。首先,看到题目,光是数据就已经达到了\(\operatorname{O}(nm)\)的级别,再看一看数据范围:\(3\leqn,m\leq4,100\)。显然是一道时间复杂度为\(\operatorname{O}(n,m)\)级别的题目。本蒟蒻首先观察了样......
  • 暑期竞赛培训 Day 16 <继续写题解>
    -[1][蓝桥杯2013省A]剪格子洛谷P8601题目描述如图\(1\)所示,\(3\times3\)的格子中填写了一些整数。我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是\(60\)。本题的要求就是请你编程判定:对给定的\(m\timesn\)的格子中的整数,是否可以分割为两个部分,使......
  • P4169 题解
    题意二维平面上有\(n\)个点,给你\(m\)次操作,每次操作可以插入一个点或者询问所有点中距离给定点最近的哈密顿距离。\(n,m\le3\times10^5.\)分析这是一道K-DTree的裸题。而对于这道题,我们还需要考虑插入操作。我们给出两种方式:按很多题解的思路,在这棵树上直接按普通......
  • AT_ttpc2015_g 题解
    洛谷的RMJ总是UKE,所以这一题是在ATcoder上做的,记录一,记录二。思路一首先字符串长度一定是\(6\)的倍数,然后判断是否只有\(t\)、\(i\)、\(e\)、\(c\)、\(h\)这五个字符,最后统计一下字符个数就行了。代码(错误):#include<iostream>#include<string>usingnamespacestd;......
  • UVA333 题解
    ##大意:给定一个字符串$s$判断$s$是否符合要求。1.由数字,`-`和大写英文数字`X`,空格组成,`X`代表$10$且只能在最后出现。2.依次相加前面的数字的总和可以被$11$整除,也就是前缀和,而且刚好$s$只有$10$个数字。---##坑点:1.`\r`换行与空格。你写完代码在洛谷......
  • Python爬虫遇到重定向问题解决办法汇总
    在进行Python爬虫任务时,遇到重定向问题是常见的问题之一。重定向是指在发送请求时,服务器会返回一个新的URL,将请求重新定向到该URL。为了帮助您解决这个问题,本文将提供一些实用的解决办法,并给出相关的代码示例,希望能对您的爬虫任务有所帮助。了解重定向问题重定向问题通常是由于网......