TCO 2014 Round 1A
顺利搞出 A B 两题,然后压线晋级了,手速场。
A 题 , 求排列最小的,肯定从后往前来做,维护一个最小的set,只是第一个字母要特判一下。
1: #line 5 "EllysSortingTrimmer.cpp"
2: #include <vector>
3: #include <list>
4: #include <map>
5: #include <set>
6: #include <deque>
7: #include <stack>
8: #include <bitset>
9: #include <algorithm>
10: #include <functional>
11: #include <numeric>
12: #include <utility>
13: #include <sstream>
14: #include <iostream>
15: #include <iomanip>
16: #include <cstdio>
17: #include <cmath>
18: #include <cstdlib>
19: #include <ctime>
20: #include <cstring>
21: using namespace std;
22: int i,j,k;
23: #define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
24: #define snuke(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++)
25:
26:
27: class EllysSortingTrimmer
28: {
29: public:
30: string getMin(string S, int L)
31: {
32: vector<char> s;
33: for(int i=1; i<S.size(); i++) s.push_back(S[i]);
34: sort(s.begin(),s.end());
35: vector<char> t;
36: for(int i=0; i<L-1; i++) t.push_back(s[i]);
37: t.push_back(S[0]);
38: sort(t.begin(), t.end());
39: string ret;
40: for(int i=0; i<L; i++) ret += t[i];
41: return ret;
42: }
43:
44:
45: };
46:
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
B题 不要搞成匹配的问题,每一个字母都有一个位置范围,所以只要维护一个set,保证其能够被写入,其余时间都插入最小就OK
1: #line 5 "EllysScrabble.cpp"
2: #include <vector>
3: #include <list>
4: #include <map>
5: #include <set>
6: #include <deque>
7: #include <stack>
8: #include <bitset>
9: #include <algorithm>
10: #include <functional>
11: #include <numeric>
12: #include <utility>
13: #include <sstream>
14: #include <iostream>
15: #include <iomanip>
16: #include <cstdio>
17: #include <cmath>
18: #include <cstdlib>
19: #include <ctime>
20: #include <cstring>
21: using namespace std;
22: int i,j,k;
23: #define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
24: #define snuke(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++)
25:
26:
27: class EllysScrabble
28: {
29: public:
30: string getMin(string letters, int maxDistance)
31: {
32: pair<char, int> X;
33: vector<pair<char, int> > S;
34: for(int i=0; i<letters.size(); i++)
35: {
36: S.push_back( make_pair(letters[i], i));
37: }
38:
39: string ret;
40:
41: vector<pair<char, int> > tmp;
42: for(int i=0; i< min(letters.size() *1.0,maxDistance + 1.0); i++) tmp.push_back(make_pair(letters[i], i));
43: for(int i=0; i<letters.size(); i++)
44: {
45: // search
46: sort(tmp.begin(), tmp.end());
47: bool flag = 0;
48: for(int j=0; j< tmp.size(); j++)
49: {
50: if(i - tmp[j].second == maxDistance)
51: {
52: ret += tmp[j].first;
53: tmp.erase(tmp.begin() + j);
54: flag = true;
55: break;
56: }
57: }
58: if(flag == false)
59: {
60: ret += tmp[0].first;
61: tmp.erase(tmp.begin());
62: }
63:
64: // push
65: if(i + maxDistance + 1 < letters.size())
66: {
67: tmp.push_back(S[ i+ maxDistance +1]);
68: }
69: }
70: return ret;
71: }
72:
73:
74: };
75:
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
C题 这个题目开始的时候没搞出来,其实当时已经发下了 YYY, NY YN3种情况肯定会有一个是亮的。但是没有仔细想。这个为什么贪心是对的呢?给出每一个序列,NY YN YYY一定是最大的,这个仔细推了一下好像是对的!但是有没有严格证明出来。
#line 5 "EllysLamps.cpp"
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
int i,j,k;
#define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
#define snuke(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++) class EllysLamps
{
public:
int getMin(string lamps)
{
int num = 0; for(int i=0; i<lamps.size();)
{
if(i+1 < lamps.size() && lamps[i] != lamps[i+1])
{
i+=2;
num++;
}else if(i+2 < lamps.size() && lamps[i] == lamps[i+1] && lamps[i] == lamps[i+2] && lamps[i]== 'Y')
{
i+=3;
num++;
}else i++;
}
return num;
} };
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
TCO 2014 Round 1A的更多相关文章
- TCO 2014 Round 1C 概率DP
TCO round 1C的 250 和500 的题目都太脑残了,不说了. TCO round 1C 950 一个棋子,每次等概率的向左向右移动,然后走n步之后,期望cover的区域大小?求cover, ...
- 模拟 Coder-Strike 2014 - Round 1 A. Poster
题目地址:http://codeforces.com/problemset/problem/412/A /* 模拟:题目没看懂,但操作很简单,从最近的一头(如果不在一端要先移动到一端)往另一头移动,顺 ...
- Coder-Strike 2014 - Round 2
t题目链接:Coder-Strike 2014 - Round 2 A题:简单水题,注意能加入反复的数字.因此仅仅要推断是否能把Min和Max加入好.就能够了 B题:开一个sum计算每一个聊天总和,和 ...
- [Google Codejam] Round 1A 2016 - The Last Word
[Problem Description] Problem On the game show The Last Word, the host begins a round by showing the ...
- Google Code Jam Round 1A 2015 解题报告
题目链接:https://code.google.com/codejam/contest/4224486/ Problem A. Mushroom Monster 这题题意就是,有N个时间点,每个时间 ...
- 2005 TCO Online Round 1 - RectangleError
RectangleError Problem's Link Problem Statement You want to draw a rectangle on a piece of paper. Un ...
- Coder-Strike 2014 - Round 1 D. Giving Awards
题目的意思是 老板给n个人发工资,x欠y的工资,the joy of person x from his brand new money reward will be much less, 老板想避免 ...
- Coder-Strike 2014 - Round 1 E. E-mail Addresses
此题题意就是匹配邮箱,提交时一直在test 14上WA,看了测试用例之后才发现计数用的int溢出,要用long long还是做题经验不够,导致此题未能通过,以后一定要考虑数据量大小 题意是找出邮件地址 ...
- Coder-Strike 2014 - Round 1 C. Pattern
题目的意思是给出n个长度相同的字符串然后找出与他们匹配的字符串 将字符串存入类似二维数组的里面,每一行代表一个字符串,遍历每列,判断每列是否有公共的匹配字符,如果有输出任意一个 如果没有输出'?' # ...
随机推荐
- 多系统通讯-DotNetMQ
很久都没有写博客了,从15年4月份一直忙到现在,我才有时间去做梳理和总结,因为我提离职了,感觉整个世界突然变得不一样,随着而来的就是心情的放松,写一篇文章也是对过去一年多工作的梳理,加深印象 积累和沉 ...
- opencv里面CV_32FC1家族
因为总是接触过这样一些#define里面的东西但是总也不知道是干什么用的.而且每看一次梦比一次. 对于这些东西到底是什么的简写根本就不能理解. 原意是跑一下这个例程的: cvRectangle( my ...
- eclipse在线安装svn插件
原文地址:http://www.cnblogs.com/xdp-gacl/p/4354199.html Eclipse在线安装SVN 一.SVN在线安装 下面为在线安装SVN插件.以下是在线安装步骤: ...
- ubuntu14.04LTS更新源
这两天一直在使用Linux系统做一些事情,但是又会有特别多的报错,其中有一个问题就是源的问题,我知道有太多太多的人写这个源更新的帖子,我现在也写一篇关于源更新的帖子,只是针对ubuntu14.04LT ...
- PHP中foreach循环详解
首先要说的是,其实我对foreach循环的用法并不是很精通,说详解,其实也只是我自己的理解,希望对你能有点帮助 . 先来看一下foreach的语法: foreach ($array as $key=& ...
- CSS 수직 가운데 정렬 (테이블 없이!) Vertical Centering with CSS
이 방법은 테이블처럼 만들어서 테이블의 vertical-align 속성을 사용할 수 있도록 를 몇 개 세팅한다. (테이블의 vertical-align 속성은 다른 요소들에서는 굉장 ...
- 自动生存Makefile教程 autoscan aclocal autoconf autoheader automake configure
LZ没学过makefile的写法,只知道使用tab.于是乎发现了autotools系列工具 基本流程是:autoscan.aclocal.autoconf.autoheader.automake.co ...
- 【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)
原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_ ...
- MySql数据库的导入_命令工具
一.如何导入别人已经建好的数据库 create database goods use goods source E:\goods.sql (绝对路径) 这样就导入了指定的数据库到本机电脑 二.任何数据 ...
- android apk 防止反编译技术第一篇-加壳技术
做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习.现在将最近学习成果做一下整理总结.学习的这些成 ...