HDU 6205 card card card
来源:互联网 发布:淘宝运营应该怎么做 编辑:程序博客网 时间:2024/05/16 10:45
题目地址
题意:给你n堆牌,原本每一堆的所有牌(a[i]张)默认向下,每次从第一堆开始,将固定个数的牌(b[i]张)翻上,然后下一堆继续,直到没有足够的牌翻上,然后你可以获得当前已经操作过的堆的所有牌。最初你可以调整堆的顺序,把第一堆放到最后一堆(逆时针旋转),你可以重复这个操作,问你要重复多少次这个操作,才能获得最多的牌。
思路:先把这个序列复制一遍放在原本序列的后面,这样的会就不用手动去改变牌的堆的顺序了。当i=n的时候结束就好了,每次遍历长度为n的序列。然后开始找,当有一个sum已经小于0
的话,就说明当前已经结束了,所以当前最大的牌数就是现在的总牌数,然后这个去与之前的比较,因为sum小于0了,所以当前的a[i]-b[i]是一定小于0的要不然在之前sum就小于0,所以从这个节点的后面开始重新计算就好了,因为在这个条件下,这个结果是最优的。然后最后取最大就好了。
#include <iostream>#include <cstring>#include <string>#include <queue>#include <vector>#include <map>#include <set>#include <stack>#include <cmath>#include <cstdio>#include <algorithm>#include <iomanip>#define N 2000010#define M 100010#define LL __int64#define inf 0x3f3f3f3f#define lson l,mid,ans<<1#define rson mid+1,r,ans<<1|1#define getMid (l+r)>>1#define movel ans<<1#define mover ans<<1|1using namespace std;const LL mod = 1000000007;int a[N];int b[N];int main() { cin.sync_with_stdio(false); int n; int mmax; int ans, sum, cnt, num; int id; while (cin >> n) { for (int i = 0; i < n; i++) { cin >> a[i]; a[i + n] = a[i]; } for (int i = 0; i < n; i++) { cin >> b[i]; b[i + n] = b[i]; } mmax = 0; id = 0; sum = 0; num = 0; for (ans = 0; ans < n; ans = cnt + 1) { for (cnt = ans; cnt < ans + n; cnt++) { num += a[cnt]; sum += (a[cnt] - b[cnt]); if (sum < 0) { if (mmax < num) { mmax = num; id = ans; } sum = 0; num = 0; break; } } if (cnt == ans + n) { id = ans; break; } } cout << id << endl; } return 0;}
阅读全文
0 0
- hdu 6205 card card card
- HDU 6205:card card card
- HDU 6205 card card card
- hdu 6205 card card card
- card card card HDU-6205
- HDU 6205 card card card
- 【HDU 6205】 card card card 【尺取】
- HDU 6205 card card card(尺取)
- card
- Card
- HDU 6205 card card card(展开字符串思想+思维)
- HDU 6205 card card card(尺取法)
- hdu 6205 card card card(最大子段和)
- HDU-6205 card card card(思维+简单线段树)
- HDU 6205 card card card (2017沈阳网赛
- hdu 6205 card card card (尺取法)
- 1012 card card card
- HDU6205 card card card
- Android中ActionBar和ToolBar添加返回箭头
- 实战9.Spark图计算GraphX介绍及实例
- mongodb的复制集及搭建
- history命令格式修改
- javascript<1>
- HDU 6205 card card card
- 【Java概念】类组成结构、成员变量、成员方法(5)
- P问题和NP问题
- javascript<2>
- 实战10.分布式内存文件系统Tachyon介绍及安装部署
- python读写CSV
- iOS【IOS电商项目: 高仿<爱鲜蜂> OC版】
- Apache Spark2.0正式发布
- Java常用方法总结