题目链接

比赛时间没能通过==, 只能说明自己代码写的太不严谨咯!

解题思想就是贪心

先判断无解的情况:

  1. 奇数不够,因为偶数是无法凑成奇数的

  2. 偶数不够,2个奇数可以凑成一个偶数

  3. 在奇数够用的情况下, 先在k-p堆中每一堆都放一个奇数,

    那么剩余的奇数个数一定是个偶数,否则必定会有另外一堆数的和也为奇数。

有解的情况,先放奇数, 每堆一个奇数。接下来要考虑偶数个数  < p的情况,

也就是用两个奇数来凑一个偶数,输出k-1堆后,有解的情况可以保证最后一堆

一定是满足条件的,也就是全部输出。

 

附上代码:

 n, k, p = map(int, raw_input().split());
a = map(int, raw_input().split());
b, c = [], [];
even, odd = 0, 0;
for i in xrange(n):
if a[i] % 2 == 0:
even += 1
b.append(a[i]);
else:
c.append(a[i]);
odd = n - even;
if odd < k-p or (odd-(k-p))/2+even < p or (odd-(k-p))%2:
print "NO"
else:
print "YES";
for i in xrange(k-p-1):
print 1, c[i]
if p == 0:
print n-(k-p-1),
for i in xrange(k-p-1, odd):
print c[i],
for i in xrange(0, even):
print b[i],
else:
if k != p:
print 1, c[k-p-1]
j = k - p;
if even >= p and p:
for i in xrange(p-1):
print 1, b[i]
left = n - (k-p) - (p-1)
print left,
for i in xrange(k-p, odd):
print c[i],
for i in xrange(p-1, even):
print b[i],
elif even < p and p:
for i in xrange(even):
print 1, b[i]
for i in xrange(p-even-1):
print 2, c[j], c[j+1]
j += 2
left = n - even - j;
print left,
for i in xrange(j, j+left):
print c[i],

Codeforces 439C的更多相关文章

  1. Codeforces 439C Devu and Partitioning of the Array(模拟)

    题目链接:Codeforces 439C Devu and Partitioning of the Array 题目大意:给出n个数,要分成k份,每份有若干个数,可是仅仅须要关注该份的和为奇数还是偶数 ...

  2. codeforces 439C 模拟

    http://codeforces.com/problemset/problem/439/C 题意:给你n个数,分成k个非空集合,其中有p个集合的元素和为偶数,其余k-p个集合的元素和为奇数. 思路: ...

  3. codeforces 439C Devu and Partitioning of the Array(烦死人的多情况的模拟)

    题目 //这是一道有n多情况的烦死人的让我错了n遍的模拟题 #include<iostream> #include<algorithm> #include<stdio.h ...

  4. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  5. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  6. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  7. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  8. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  9. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

随机推荐

  1. [转]【全面解禁!真正的Expression Blend实战开发技巧】第八章 FluidMoveBehavior完全解析之一漂浮移动

    好久没更新博客了,今天如果没急事,准备连发三篇,完全讲解Blend最牛的元素-“FluidMoveBehavior”.我向大家保证这三章一定非常精彩,不看你肯定后悔.我相信这三篇文章发表后,国内很多s ...

  2. Django项目:CRM(客户关系管理系统)--71--61PerfectCRM实现CRM学生上传作业

    # student_urls.py # ————————60PerfectCRM实现CRM学生上课记录———————— from django.conf.urls import url from bp ...

  3. centos7如何配置yum仓库

    centos7如何配置yum仓库 一.总结 一句话总结: 备份原仓库配置原件,接来下按需求 百度 是指定本地光盘作为yum仓库,还是使用网络源作为yum仓库 二.centos7如何配置yum仓库 1. ...

  4. AdaBoost笔记之代码

    最近要做二分类问题,先Mark一下知识点和代码,参考:Opencv2.4.9源码分析——Boosting   以下内容全部转自此文 一 原理 二 opencv源码 1.先看构建Boosting的参数: ...

  5. tmux连接时多个显示器分别显示不同的窗口大小

      如果两个电脑连接同一个tmux,但是他们各自的显示器大小不同,那么就会在一个显示器部分会显示灰色区.在tmux里面有个设置可以更改,在tmux里面输入命令 tmux set-window-opti ...

  6. hbase表内存的分布

  7. 公司jar包提交到集群的方法

    yarn -jar xx.jar 此时包会提交到集群上运行 也可以把jar包放到hbase 的lib下面用hbase jar 方式调用

  8. 使用 windows 批处理指令(BAT文件)进行压缩文件(zip)解压操作

    以下指令包括文件删除.复制.zip文件解压操作.使用7z指令指令进行解压操作前,需要确保 windows 的 path 系统环境变量中存在7z的安装路径. 7z的下载地址:https://www.7- ...

  9. 矩阵快速幂求Fibonacci

    原理 我们取矩阵A 则 F1=F2=1;则可以轻易求出F(i) #define maxn 2 #define mo 1000000007 struct Matrix{ long long a[maxn ...

  10. MySQL系列(七)--SQL优化的步骤

    前面讲了如何设计数据库表结构.存储引擎.索引优化等内存,这篇文章会讲述如何进行SQL优化,也是面试中关于数据库肯定会被问到的, 这些内容不仅仅是为了面试,更重要的是付诸实践,最终用到工作当中 之前的M ...