uva 11039 - Building designing(贪心)
来源:互联网 发布:得力3970拷贝数据 编辑:程序博客网 时间:2024/05/16 05:56
题目链接:uva 11039 - Building designing
题目大意:给出n个数,均为非0数,要求选出尽量多的数组成序列,序列要求正负交替,绝对值递增。
解题思路:读入时将正数与负数分别储存在两个数组,负数可以直接储存绝对值。然后将两个数组按照绝对大小分别排序,然后在两个数组中交替选出尽量小的数,满足绝对值大于前面一个选出的数。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 500005;int n, l, r, left[N], right[N];void init() {l = r = 0;memset(right, 0, sizeof(right));memset(left, 0, sizeof(left));int c;scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &c);if (c < 0) left[l++] = -c;elseright[r++] = c;}sort(left, left + l);sort(right, right + r);}int solve() {if (l && r) {int p, q, begin, ans = 1, tmp;if (left[0] < right[0]) {p = 1, q = 0, begin = 0;tmp = left[0];}else {p = 0, q = 1, begin = 1;tmp = right[0];}for (int i = begin; p < l || q < r; i++) {bool flag = true;if (i % 2) {//if (p >= l) break;while (p < l) {if (tmp <= left[p]) {ans++;tmp = left[p++];flag = false;break;} elsep++;}} else {//if (q >= r) break;while (q < r) {if (tmp <= right[q]) {ans++;tmp = right[q++];flag = false;break;} elseq++;}}if (flag) break;}return ans;} elsereturn 1;}int main () {int cas;scanf("%d", &cas);while (cas--) {init();printf("%d\n", solve() );}return 0;}
- uva 11039 - Building designing(贪心)
- UVa 11039 - Building designing(贪心)
- uva 11039 - Building designing(贪心)
- UVA 11039 Building designing
- UVA 11039 - Building designing
- uva 11039 - Building designing
- Uva-11039-Building designing
- UVa 11039 - Building designing
- Uva - 11039 - Building designing
- UVA 11039 - Building designing
- uva 11039 Building designing
- Uva 11039 - Building designing
- UVA 11039 - Building designing
- UVA - 11039 Building designing
- UVA 11039 Building designing
- UVA 11039 Building designing
- UVA - 11039 Building designing
- UVa 11039 - Building Designing
- 天亮了起来的飞鸽传书官方下载
- scanf()和getchar() 使用
- 文本框默认显示内容点击后消失的方法
- PL/SQL
- 李铎-爱商业business--weibo
- uva 11039 - Building designing(贪心)
- Linux下的压缩解压缩命令详解
- 破解“PE Explorer”1.40版
- winpcap小窥-tcp包截取与转发
- COCOA设计模式——单例模式
- 【单词博弈】
- RSA算法简介及简单java实现类
- Java NIO框架Netty教程(三) – Object对象传递
- Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析