cf1555C Coin Rows
生活随笔
收集整理的這篇文章主要介紹了
cf1555C Coin Rows
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cf1555C Coin Rows
題意:
有一個兩行m列的地圖,每個格子都有對應的價值,有a,b兩個人,都從左上角到右下角,且都只能向右向下走,a先出發,a每到一個格子,就會獲得這個地方的價值,然后b再出發,如果一個格子被a走過,b再走就不會獲得價值
問b獲得的最大價值
題解:
因為只能向右向下走,如果a從x位置向下走了,那么第一行x位置之后的a就拿不到,而第二行x位置之前的a也拿不到,而這些b可以選其一獲得。取這兩個部分的最大值
代碼:
// Problem: C. Coin Rows // Contest: Codeforces - Educational Codeforces Round 112 (Rated for Div. 2) // URL: https://codeforces.com/contest/1555/problem/C // Memory Limit: 256 MB // Time Limit: 2000 ms // Data:2021-08-16 23:55:41 // By Jozky#include <bits/stdc++.h> #include <unordered_map> #define debug(a, b) printf("%s = %d\n", a, b); using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> PII; clock_t startTime, endTime; //Fe~Jozky const ll INF_ll= 1e18; const int INF_int= 0x3f3f3f3f; template <typename T> inline void read(T& x) {T f= 1;x= 0;char ch= getchar();while (0 == isdigit(ch)) {if (ch == '-')f= -1;ch= getchar();}while (0 != isdigit(ch))x= (x << 1) + (x << 3) + ch - '0', ch= getchar();x*= f; } template <typename T> inline void write(T x) {if (x < 0) {x= ~(x - 1);putchar('-');}if (x > 9)write(x / 10);putchar(x % 10 + '0'); } void rd_test() { #ifdef LOCALstartTime= clock();freopen("in.txt", "r", stdin); #endif } void Time_test() { #ifdef LOCALendTime= clock();printf("\nRun Time:%lfs\n", (double)(endTime - startTime) / CLOCKS_PER_SEC); #endif } const int maxn= 2e5 + 9; int a[3][maxn]; int sum[3][maxn]; int main() {//rd_test();int t;read(t);while (t--) {int n;cin >> n;for (int i= 1; i <= 2; i++) {for (int j= 1; j <= n; j++) {cin >> a[i][j];sum[i][j]= sum[i][j - 1] + a[i][j];}}int minn= INF_int;for (int i= 1; i <= n; i++) {int ans1= sum[1][n] - sum[1][i];int ans2= sum[2][i - 1];minn= min(minn, max(ans1, ans2));}cout << minn << endl;}//Time_test(); }總結
以上是生活随笔為你收集整理的cf1555C Coin Rows的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Linux下编译安装Apache2(2
- 下一篇: cf1555D. Say No to P