CF746 C 分类讨论 水题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF746 C 分类讨论 水题相关的知识,希望对你有一定的参考价值。
我反正始终把从左到右作为正向,如果不是则全部方向置反位置变成s-x就行惹
可能会方便点吧?
然而还是弱智般的WA了几次
特记一下
/** @Date : 2017-08-23 22:08:08 * @FileName: C.cpp * @Platform: Windows * @Author : Lweleth ([email protected]) * @Link : https://github.com/ * @Version : $Id$ */ #include <bits/stdc++.h> #define LL long long #define PII pair<int ,int> #define MP(x, y) make_pair((x),(y)) #define fi first #define se second #define PB(x) push_back((x)) #define MMG(x) memset((x), -1,sizeof(x)) #define MMF(x) memset((x),0,sizeof(x)) #define MMI(x) memset((x), INF, sizeof(x)) using namespace std; const int INF = 0x3f3f3f3f; const int N = 1e5+20; const double eps = 1e-8; int main() { int s, x1, x2, t1, t2, p, d; while(cin >> s >> x1 >> x2 >> t2 >> t1 >> p >> d) { if(x1 > x2) { x1 = s - x1; x2 = s - x2; p = s - p; d *= -1; } if(t2 > t1) printf("%d\n", (x2 - x1) * t1); else if(d == 1) { if(p <= x1) printf("%d\n", min((x2 - p)*t2, (x2 - x1)*t1)); else if(p > x1) { printf("%d\n", min(2*s*t2 + (x2 - p)*t2,(x2 - x1)*t1)); } } else { if(p <= x1) printf("%d\n", min((x2 - p + 2 * p)*t2, (x2 - x1)*t1)); else if(p > x1 && p > x2) printf("%d\n", min((p+x2)*t2,(x2 - x1)*t1)); } } return 0; }
以上是关于CF746 C 分类讨论 水题的主要内容,如果未能解决你的问题,请参考以下文章