第一次玩ACM。。。有点小紧张小兴奋。这题目好难啊,只是网赛就这么难。。。只把最简单的两题做出来了。

题目1:


代码:

//#define _ACM_
#include<iostream>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
using namespace std; char line[111], word[111];
int T(0);
struct CAT{
//string N; //name of current category
map<string, CAT> C; //categorys
set<string> B; //books
void show(const int sp) const{
for (const auto &r : C) {
for (int i = 0;i < sp;++i) printf(" ");
printf("%s\n", r.first.c_str());
r.second.show(sp+1);
}
for (const auto &r : B) {
for (int i = 0;i < sp;++i) printf(" ");
printf("%s\n", r.c_str());
}
}
}; int main()
{
#ifdef _ACM_
#define gets(T) gets_s(T, 111)
freopen("in.txt", "r", stdin);
#endif while (gets(line)) {
map<string, CAT> cat;
do {
CAT* pc(NULL);
char *p(word);
for (char *pl(line);*pl != '\0';++pl) {
if (*pl != '/') *p++ = *pl;
else {
*p = '\0';p = word;
if (pc == NULL) pc = &cat[word];
else pc = &(pc->C[word]);
}
}
*p = '\0';
pc->B.insert(word);
} while (gets(line) && strcmp(line, "0"));
printf("Case %d:\n", ++T);
for (const auto &r : cat) {
printf("%s\n", r.first.c_str());
r.second.show(1);
}
}
return 0;
}

题目3:


代码:

//#define _ACM_
#include<iostream>
#include<string>
#include<map>
using namespace std; inline bool isch(char c) { return c >= 'a' && c <= 'z'; } char ch, line[555], word[555];
string pr;
map<string, unsigned> phs;
int main()
{
#ifdef _ACM_
#define gets(T) gets_s(T, 555)
freopen("in.txt", "r", stdin);
#endif ch = getchar();
while (true) {
char *p(word);
while (isch(ch)) {
*p++ = ch;
ch = getchar();
}
*p = '\0';
bool ispunc(false);
while (ch != EOF && !isch(ch) && ch != '#') {
if (ch == ',' || ch == '.' || ch == '\n') ispunc = true;
ch = getchar();
}
if (ch == EOF) break;//the end of test file
else if (ch == '#') {//the end of current text
if (!pr.empty()) ++phs[pr + ' ' + word];
if (ispunc) pr.clear();
else pr = word;
unsigned maxu = 0;
string maxs;
for (const auto& r : phs)
if (r.second > maxu) maxu = r.second, maxs = r.first;
printf("%s:%u\n", maxs.c_str(), maxu);
phs.clear(), pr.clear();
getchar(), getchar(), getchar(), getchar();
ch = getchar();
}
else {//find a word/phrase
if (!pr.empty()) ++phs[pr + ' ' + word];
if (ispunc) pr.clear();
else pr = word;
}
}
return 0;
}

[刷题]ACM/ICPC 2016北京赛站网络赛 第1题 第3题的更多相关文章

  1. [刷题]ACM ICPC 2016北京赛站网络赛 D - Pick Your Players

    Description You are the manager of a small soccer team. After seeing the shameless behavior of your ...

  2. HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)

    HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: ...

  3. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛D-80 Days--------树状数组

    题意就是说1-N个城市为一个环,最开始你手里有C块钱,问从1->N这些城市中,选择任意一个,然后按照顺序绕环一圈,进入每个城市会有a[i]元钱,出来每个城市会有b[i]个城市,问是否能保证经过每 ...

  4. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 80 Days(尺取)题解

    题意:n个城市,初始能量c,进入i城市获得a[i]能量,可能负数,去i+1个城市失去b[i]能量,问你能不能完整走一圈. 思路:也就是走的路上能量不能小于0,尺取维护l,r指针,l代表出发点,r代表当 ...

  5. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛-B:Tomb Raider(二进制枚举)

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughter of a missing adv ...

  6. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛

    题意:到一个城市得钱,离开要花钱.开始时有现金.城市是环形的,问从哪个开始,能在途中任意时刻金钱>=0; 一个开始指针i,一个结尾指针j.指示一个区间.如果符合条件++j,并将收益加入sum中( ...

  7. hihoCoder #1831 : 80 Days-RMQ (ACM/ICPC 2018亚洲区预选赛北京赛站网络赛)

    水道题目,比赛时线段树写挫了,忘了RMQ这个东西了(捞) #1831 : 80 Days 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 80 Days is an int ...

  8. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A、Saving Tang Monk II 【状态搜索】

    任意门:http://hihocoder.com/problemset/problem/1828 Saving Tang Monk II 时间限制:1000ms 单点时限:1000ms 内存限制:25 ...

  9. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 B Tomb Raider 【二进制枚举】

    任意门:http://hihocoder.com/problemset/problem/1829 Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 L ...

随机推荐

  1. 更全面的聊聊PRINCE2是什么

    1 什么是PRINCE2®? PRINCE2是一个非专有方法,已在全世界超过150个国家广泛使用,采用它的组织正在与日俱增. 它被广泛认为是项目管理的领先方法,超过2万个组织已经从其开创性的可信方法中 ...

  2. RBAC打造通用WEB权限

    RBAC不用给用户单个分配权限,只用指向对应的角色就会有对应的权限,而且分配权限和收回权限都很方便 5个关系对应5张表 五张表设计 CREATE TABLE `user` ( `id` ) unsig ...

  3. 【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案

    本人SLAM研究新手,使用系统为Ubuntu16.04.本文原址:http://www.cnblogs.com/hitlrk/p/6667253.html 在学习SLAM的过程中,使用Octomap进 ...

  4. 性能调优案例分享:Mysql的cpu过高

    性能调优案例分享:Mysql的cpu过高   问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...

  5. hive 动态分区数设置

    当对hive分区未做设置时,报错如下: Caused by: org.apache.hadoop.hive.ql.metadata.HiveFatalException: [Error 20004]: ...

  6. hive 锁表问题

    报错如下: Unable to acquire IMPLICIT, EXCLUSIVE lock dms@pc_user_msg@month=201611 after 100 attempts. 显示 ...

  7. 面试题(二)—Java基础(下)

    一.进程和线程 进程 (1)正在运行的程序,是系统进行资源分配和调用的独立单位. (2)每一个进程都有它自己的内存空间和系统资源. 线程 (1)是进程中的一条执行路径. (2)一个进程如果只有一条执行 ...

  8. EasyUI之Hello world(EasyUI的入门学习)

    1:创建一个动态web工程:    去官网http://www.jeasyui.net/download/下载官网文档    我去官网下载的最新版本,个人根据自己的需求下载即可.2:在webConte ...

  9. QT5 && VS2013配置

    1.下载安装包 qt-opensource-windows-x86-msvc2013_64-5.7.0.exe VS2013_RTM_ULT_ENU.iso 插件:qt-vs-addin-msvc20 ...

  10. Node.js系列:Buffer类的使用

    客户端JavaScript中没有对二进制数据提供很好的支持.但是在处理TCP流或文件流时,必须要处理二进制数据.Node.js定义了一个Buffer类,用来创建一个专门存放二进制数据的缓存区. Buf ...