【题目链接】:http://codeforces.com/problemset/problem/727/D

【题意】



给你6种尺寸的衣服;

他们的尺码依次为S, M, L, XL, XXL, XXXL;

给你每种衣服的件数;

以及每个人想要的衣服种类;

(但有些人可能不知道自己要的是哪一种衣服,则他们对这相邻的两种衣服都接受)

然后让你去分配这6种衣服;

让每个人都满意;

【题解】



对于单个选择的;直接让他们满意;

给他们想要的;

对于相邻选择的;

考虑”S,M”,”M,L”,”L,XL”,”XL,XXL”,”XXL,XXXL”

可以看到S只有一种人要,其他的人都不会要S了

所以对于选择S、M的,

优先把S衣服给它;

如果S不够了,再分M的;

如果不行、就无解;

这样我们又把S、M的排除掉了,

对于剩下的

“M,L”,”L,XL”,”XL,XXL”,”XXL,XXXL”

M也只有一种人要;

则对于M、L也优先分配M;

不足的再用L补

很棒的贪心



【Number Of WA】



0



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 1e5+100;
const string idx[11]={"S","M","L","XL","XXL","XXXL","S,M","M,L","L,XL","XL,XXL","XXL,XXXL"}; int now[6],n,p[N],ans[N];
string s; int zzk(string t)
{
rep1(i,0,10)
if (idx[i]==t)
return i;
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
rep1(i,0,5) cin>>now[i];
cin>>n;
rep1(i,1,n)
{
cin >> s;
rep1(j,0,10)
if (s == idx[j])
p[i] = j;
}
rep1(i,1,n)
if (p[i]<=5)
{
if (now[p[i]])
{
now[p[i]]--;
ans[i] = p[i];
}
else
return cout << "NO"<<endl,0;
}
rep1(k,6,10)
{
int pos = idx[k].find(',',0);
int p1 = zzk(idx[k].substr(0,pos)),p2 = zzk(idx[k].substr(pos+1,10));
//cout <<p1<<' '<<p2<<endl;
rep1(i,1,n)
if (p[i]==k)
{
if (now[p1])
{
now[p1]--;
ans[i] = p1;
continue;
}
if (now[p2])
{
now[p2]--;
ans[i] = p2;
continue;
}
return cout << "NO"<<endl,0;
}
}
cout <<"YES"<<endl;
rep1(i,1,n)
cout << idx[ans[i]] << endl;
return 0;
}

【codeforces 727D】T-shirts Distribution的更多相关文章

  1. 【codeforces 798D】Mike and distribution

    [题目链接]:http://codeforces.com/contest/798/problem/D [题意] 让你选一个下标集合 p1,p2,p3..pk 使得2*(a[p1]+a[p2]+..+a ...

  2. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  3. 【23.33%】【codeforces 557B】Pasha and Tea

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  4. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  5. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  6. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  7. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  8. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  9. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

随机推荐

  1. ASP内置对象—Request、Response 、Server、Application 、ObjectContent (二)

    Response (应答)对象 Request 对象.用于在HTTP请求期间,訪问不论什么client浏览器传递给server的信息,包含通过URL传递的參数信息.使用GET方法或POST方法传递的H ...

  2. msyql null 引起的错误

    mysql 默认值不要为null,最好为空 否则,当你查询的时候,会引起一些异常 比如 select  * from a where b!='new' 假设有一条数据b=null,你是查询不出来的 解 ...

  3. HDU4300-Clairewd’s message-KMP

    题目链接:pid=4300">http://acm.hdu.edu.cn/showproblem.php?pid=4300 题目意思真的非常难读懂. 题意:给定两组字符串,第一组仅仅有 ...

  4. Oracle 数据块损坏与恢复具体解释

    1.什么是块损坏: 所谓损坏的数据块,是指块没有採用可识别的 Oracle 格式,或者其内容在内部不一致. 通常情况下,损坏是由硬件故障或操作系统问题引起的.Oracle 数据库将损坏的块标识为&qu ...

  5. [.Net] C# Excel操作类 ExcelHelper

    实现C#与Excel文件的交互操作,实现以下功能: 1.DataTable 导出到 Excel文件 2.Model数据实体导出到 Excel文件[List<Model>] 3.导出数据到模 ...

  6. SpringBoot中拦截器和过滤器的使用

    一.拦截器 三种方式 继承WebMvcConfigurerAdapter   spring5.0 以弃用,不推荐 实现WebMvcConfigurer  推荐 继承WebMvcConfiguratio ...

  7. ES6 Proxy 性能之我见

    ES6 Proxy 性能之我见 本文翻译自https://thecodebarbarian.com/thoughts-on-es6-proxies-performance Proxy是ES6的一个强力 ...

  8. C# 常用代码片段

    一.从控制台读取东西代码片断: using System; class TestReadConsole { public static void Main() { Console.Write(Ente ...

  9. MongoDB: The Definitive Guide

    第一章 简介 MongoDB是面向文档的数据库,不是关系型数据库.内置对MapReduce的支持,以及对地理空间索引的支持. 丰富的数据模型 容易扩展,它所采用的面向文档的数据模型可以使其在多台服务器 ...

  10. MessageDigest的功能及用法(加密解密)

    MessageDigest的功能及用法 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法.信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度 ...