http://codeforces.com/contest/394/problem/C

题意:有n*m个骨牌,每个骨牌上有四种样式(“01,10,11,00”),让你重新排列成一个N*M的矩阵,使2*m列的每一列和的最大值最小。

思路:先排序,先正着排全是‘11’的牌,如果在一行,没有排满,用剩下的牌补齐,补齐之后,剩下的每一行都倒着排牌就可以了;如果上面的牌是'10',那么下面的牌是‘01’,上面的牌是‘01‘,那么下面的牌是’10‘;

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define ll long long
#define maxn 1000100
using namespace std; int n,m;
struct node
{
int x,y;
bool operator <(const node &a)const
{
return (x+y)>(a.x+a.y);
}
} p[maxn],q[maxn];
char str[maxn];
int g[][]; int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
int cnt=;
getchar();
for(int i=; i<=n; i++)
{
gets(str);
int k=strlen(str);
for(int j=; j<k;)
{
if(str[j]!=' ')
{
p[cnt].x=str[j]-'';
p[cnt++].y=str[j+]-'';
j+=;
}
else
j++;
}
}
sort(p,p+cnt);
int x=,t1=;
bool flag=false;
for(int i=; i<=n; i++)
{
if(!flag)
{
for(int j=; j<m; j++)
{
if(p[x].x==&&p[x].y==)
{
q[t1].x=;
g[i][j]=t1;
q[t1++].y=;
x++;
}
else
{
flag=true;
for(int k=j; k<m; k++)
{
q[t1].x=p[x].x;
g[i][k]=t1;
q[t1++].y=p[x].y;
x++;
}
break;
}
}
}
else
{
for(int j=m-; j>=; j--)
{
int xx=q[g[i-][j]].x;
int yy=q[g[i-][j]].y;
if(xx==&&yy==)
{
if((p[x].x==&&p[x].y==)||(p[x].x==&&p[x].y==))
{
q[t1].x=;
g[i][j]=t1;
q[t1++].y=;
x++;
}
else
{
q[t1].x=p[x].x;
g[i][j]=t1;
q[t1++].y=p[x].y;
x++;
}
}
else if(xx==&&yy==)
{
if((p[x].x==&&p[x].y==)||(p[x].x==&&p[x].y==))
{
q[t1].x=;
g[i][j]=t1;
q[t1++].y=;
x++;
}
else
{
q[t1].x=p[x].x;
g[i][j]=t1;
q[t1++].y=p[x].y;
x++;
}
}
else
{
q[t1].x=p[x].x;
g[i][j]=t1;
q[t1++].y=p[x].y;
x++;
}
}
}
}
for(int i=; i<=n; i++)
{
for(int j=; j<m; j++)
{
printf("%d%d ",q[g[i][j]].x,q[g[i][j]].y);
}
printf("\n");
}
}
return ;
}

cf C. Dominoes的更多相关文章

  1. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  2. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  3. POJ1717 Dominoes[背包DP]

    Dominoes Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6731   Accepted: 2234 Descript ...

  4. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  5. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  6. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  7. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  8. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  9. 2016 Multi-University Training Contest 1 I. Solid Dominoes Tilings

    Solid Dominoes Tilings Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

随机推荐

  1. malloc函数具体解释

    一.原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <alloc ...

  2. Linux命令之dot - 绘制DOT语言脚本描述的图形

    本文链接:http://codingstandards.iteye.com/blog/840055 用途说明 Graphviz (Graph Visualization Software的缩写)是一个 ...

  3. (转载)Windows 7 Ultimate(旗舰版)SP1 32/64位官方原版下载(2011年5月12日更新版)

    MSDN于2011年5月12日,最新发布简体中文Windows 7 Ultimate 旗舰版 SP1 DVD镜像安装包,分32位和64位两个版本.最新发行代号分别是:677486(32位),67740 ...

  4. AndroidStudio工程文件导入Jar包和So第三方库

    AndroidStudio 导入Jar包和第三方So库 在android开发中,需要导入许多第三方的jar包和so库来支持,包括像许多第三方的支持平台--友盟,环信.融云.极光推送.微博.腾讯等第三方 ...

  5. 关于URL 解码, 编码

    由于近期客户需要用到CA认证,此CA认证采用的是URL方式出传值 使用指定的编码对象将 URL 编码的字符串转换为已解码的字符串. 编码个人理解就是将某字符串以某种方式储存起来,而解码则以其编码格式得 ...

  6. Asp.net Mvc4 基于Authorize实现的模块访问权限

    在MVC中,我们可以通过在action或者controller上设置Authorize[Role="xxx"] 的方式来设置用户对action的访问权限.显然,这样并不能满足我们的 ...

  7. jsp-文件的上传(转).

    该程序的主要代码,我引用网友的,并做了一些改进.上这个帖子的原因之一,是为了修正之前自己的一些误解. 概述: 一些网友,包括我,也曾经试图通过 input type 为 file的控件,获取其文件的完 ...

  8. iOS9 application:application openURL: sourceApplication: annotation: 方法不执行

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url NS_DEPRECATED_IOS(2_0, 9 ...

  9. javascript基础学习(二)

    javascript的数据类型 学习要点: typeof操作符 五种简单数据类型:Undefined.String.Number.Null.Boolean 引用数据类型:数组和对象 一.typeof操 ...

  10. cocos2dx解析lua table数据结构 简易版.

    之前一直用xml填配置, cocos2dx自带了xml解析接口, 非常方便. 但是, 接口好用也改变不了xml的结构字符太多, 书写麻烦, 乱七八糟的事实. 很早就想换lua, 无奈引擎没有现成接口, ...