CSU - 1203 Super-increasing sequence
2016-08-25 15:59
357 查看
题目:
Description如果一个序列中任意一项都大于前面所有项之和,那么我们就称这个序列为超递增序列。现在有一个整数序列,你可以将序列中任意相邻的若干项合并成一项,合并之后这项的值为合并前各项的值之和。通过若干次合并,最终一定能得到一个超递增序列,那么得到的超递增序列最多能有多少项呢?
Input输入数据的第一行包含正整数T (1 <= T <= 500),表示接下来一共有T组测试数据。每组测试数据的第一行包含一个整数N (1 <= N <= 100000),表示这个整数序列一共有N项。接下来一行包含N个不大于10000的正整数,依次描述了这个序列中各项的值。至多有10组数据满足N > 1000。
Output对于每组测试数据,用一行输出一个整数,表示最终得到的超递增序列最多能有多少项。Sample Input
代码:
#include<iostream>
using namespace std;
int main()
{
int T;
cin >> T;
int n;
while (T--)
{
cin >> n;
int *a = new int[n + 1];
int *s = new int[n + 1];
s[0] = 0;
int *f = new int[n + 1];
f[0] = 0;
f[1] = 1;
int c[30]; //c[i]是 使得 f(x)=i的最小x
c[1] = 1;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
s[i] = s[i - 1] + a[i];
if (i > 1)
{
if (s[i] - s[c[f[i - 1]]] - s[c[f[i - 1]]] > 0)
{
f[i] = f[i - 1] + 1;
c[f[i]] = i;
}
else f[i] = f[i - 1];
}
}
cout << f[n] << endl;
}
return 0;
}
Description如果一个序列中任意一项都大于前面所有项之和,那么我们就称这个序列为超递增序列。现在有一个整数序列,你可以将序列中任意相邻的若干项合并成一项,合并之后这项的值为合并前各项的值之和。通过若干次合并,最终一定能得到一个超递增序列,那么得到的超递增序列最多能有多少项呢?
Input输入数据的第一行包含正整数T (1 <= T <= 500),表示接下来一共有T组测试数据。每组测试数据的第一行包含一个整数N (1 <= N <= 100000),表示这个整数序列一共有N项。接下来一行包含N个不大于10000的正整数,依次描述了这个序列中各项的值。至多有10组数据满足N > 1000。
Output对于每组测试数据,用一行输出一个整数,表示最终得到的超递增序列最多能有多少项。Sample Input
3 2 1 1 3 1 2 4 6 1 2 4 3 6 5Sample Output
1 3 4
代码:
#include<iostream>
using namespace std;
int main()
{
int T;
cin >> T;
int n;
while (T--)
{
cin >> n;
int *a = new int[n + 1];
int *s = new int[n + 1];
s[0] = 0;
int *f = new int[n + 1];
f[0] = 0;
f[1] = 1;
int c[30]; //c[i]是 使得 f(x)=i的最小x
c[1] = 1;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
s[i] = s[i - 1] + a[i];
if (i > 1)
{
if (s[i] - s[c[f[i - 1]]] - s[c[f[i - 1]]] > 0)
{
f[i] = f[i - 1] + 1;
c[f[i]] = i;
}
else f[i] = f[i - 1];
}
}
cout << f[n] << endl;
}
return 0;
}
相关文章推荐
- CSU 1203 Super-increasing sequence
- CSU 1203 Super-increasing sequence (模拟)
- CSU 1203: Super-increasing sequence 水题
- 1203: Super-increasing sequence
- CSU1001/1002/1683/1639/1524/1816/1888/1893/1202/1203/1212
- 图像超分辨技术(Image Super Resolution)
- Java: 类继承 super关键字使用
- delphi-json组件,速度非常快,要比superobject快好几倍
- J - 搞笑版费马大定理 CSU - 1337
- 理解Objective-C Runtime (六)super
- 【HDU1087】Super Jumping
- Objective-C中,重写init方法为什么要self = [super init]?
- 详解java中this.getClass()和super.getClass()的实例
- Python中super关键字的作用
- CSU-ACM2017暑假集训比赛7 C - Pasha and Tea - CodeForces - 557B
- 浅谈Java泛型之<? extends T>和<? super T>的区别
- 理解 Python super()
- JAVA学习(七):方法重载与方法重写、this关键字和super关键字
- luogu1218 [USACO1.5] Superprime Rib(搜索+素数判断)
- CSU 1559