NJUST 1925 sequence
2016-04-17 15:41
543 查看
原题
如7 6 9 8 10可以拆成 7 9 10和6 8。求最小的K值。
比如先 7 9 10
再 6 8
然后拿链表实现
Description
将一个给定的数列,拆分成K个不降序列,每个数出现且只出现一次,且在各序列中各个数相对于原数列的相对顺序不变。如7 6 9 8 10可以拆成 7 9 10和6 8。求最小的K值。
Algorithm
按顺序生产比如先 7 9 10
再 6 8
然后拿链表实现
Code
#include <cstdio> #include <iostream> #include <list> using namespace std; void solve() { list<int> mylist; int n; scanf("%d", &n); for (int i = 0; i < n; i++) { int x; scanf("%d", &x); mylist.push_back(x); } int ans = 0; while (!mylist.empty()) { int head = *mylist.begin(); mylist.pop_front(); // for (list<int>::iterator it = mylist.begin(); it != mylist.end(); it++) // cout << *it; for (list<int>::iterator it = mylist.begin(); it != mylist.end(); it++) if (*it >= head) { head = *it; it = mylist.erase(it); it--; } ans++; } cout << ans << endl; } int main() { // freopen("input.txt", "r", stdin); int t = 1; scanf("%d", &t); for (int i = 0; i < t; i++) solve(); }
相关文章推荐
- Android 在其他线程中更新UI线程的解决方法
- RequireJS源码初探
- RVO(Return Value Optimization)和NRVO(Named Return Value Optimization)
- hdu 5667 Sequence【费马小定理+矩阵快速幂】
- (LeetCode 307) Range Sum Query - Mutable(Segment Tree)
- hdu 5667 Sequence 矩阵快速幂
- Java常用之String.valueOf、toString、(String)
- UUID
- HDU5667 Sequence
- 共同学习Java源代码--常用工具类--AbstractStringBuilder(一)
- [Data Structure] Maximum Subsequence Sum
- cppreference.com关于值类型的详细解读:lvalue,rvalue,xvalue,prvalue,glvalue
- 设计模式之建造者模式(Builder)
- leetcode——60——Permutation Sequence
- 关于别克2016君越(Buick Lacroesse)的音频系统
- StringBuffer_StringBuilder
- 225. Implement Stack using Queues
- hdu 5667 sequence
- iOS UIScrollView和 cell加载子视图偏移64问题
- HDU 5667 Sequence