ACM-ICPC 2018 沈阳赛区网络预赛 I 题 Lattice's basics in digital electronics
原题链接:https://nanti.jisuanke.com/t/31450
附上队友代码:(感谢队友带飞)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define DOR(i,a,b) for(int i=(a);i>=(b);--i)
const int maxN=2e5+5,inf=0x3f3f3f3f;
int N, M, K, T;
int g[maxN];
unordered_map<string,int> mp;
char S1[maxN * 4], S2[maxN * 4], S3[maxN * 4];
struct ND{
ND *lch, *rch;
char x;
};
char cg[20][5] = {"0000","0001","0010", "0011", "0100",
"0101", "0110", "0111", "1000", "1001", "1010",
"1011", "1100", "1101", "1110", "1111"};
bool judge(char *s, int st) {
int i = 0, one = 0;
while (i < 9 && s[st + i] != 0) {
if (s[st + i] == '1')
++one;
++i;
}
if (i < 9) return 0;
if (one & 1) return 1;
else return 0;
}
int main () {
#ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif
scanf("%d", &T);
while (T--) {
S1[0] = S2[0] = S3[0] = 0;
mp.clear();
scanf("%d%d", &M, &N);
int a;
char s[15];
FOR(i, 1, N) {
scanf("%d %s", &a, s);
mp[s] = a;
}
scanf("%s", S1);
for (int i = 0; S1[i] != 0; ++i) {
int cnt;
if (isdigit(S1[i])) cnt = S1[i] - '0';
else {
S1[i] = toupper(S1[i]);
cnt = S1[i] - 'A' + 10;
}
FOR(j, 0, 3) {
S2[i * 4 + j] = cg[cnt][j];
}
}
// puts(S1);
// puts(S2);
int L = strlen(S2), cnt = 0;
for (int i = 0; i < L; i += 9) {
bool ok = judge(S2, i);
if (ok) {
for (int j = i; j < i + 8; ++j)
S3[cnt++] = S2[j];
}
}
S3[cnt] = 0;
// cout << "cnt" << cnt << endl;
/*
for (int i = 0; i < cnt; ++i) {
if (i && i % 4 == 0) printf(" ");
printf("%c",S3[i]);
}
*/
//puts(S3);
string str = S3;
int L3 = str.length();
int idx = 0;
int all = 0;
while (idx < L3) {
for (int len = 1; len <= 10; ++len) {
if (L3 - idx + 1 < len) {
idx = L3;
break;
}
string subs = str.substr(idx, len);
if (mp.count(subs)) {
printf("%c", mp[subs]);
++all;
if (all == M) {
idx = L3;
break;
}
idx += subs.length();
break;
}
}
}
puts("");
}
return 0;
}
ACM-ICPC 2018 沈阳赛区网络预赛 I 题 Lattice's basics in digital electronics的更多相关文章
- 【ACM-ICPC 2018 沈阳赛区网络预赛 I】Lattice's basics in digital electronics
[链接] 我是链接,点我呀:) [题意] [题解] 每个单词的前缀都不同. 不能更明示了... 裸的字典树. 模拟一下.输出一下就ojbk了. [代码] #include <bits/stdc+ ...
- Fantastic Graph 2018 沈阳赛区网络预赛 F题
题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边流入1,流出1,最后使流量平衡 解析: ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K题
题目链接: https://nanti.jisuanke.com/t/31452 AC代码(看到不好推的定理就先打表!!!!): #include<bits/stdc++.h> using ...
- Made In Heaven 2018 沈阳赛区网络预赛 D题
求第k短路 模板题 套模板即可 #include <iostream> #include <cstring> #include <cstdio> #include ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)
https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...
- ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number
Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...
- ACM-ICPC 2018 沈阳赛区网络预赛-D:Made In Heaven(K短路+A*模板)
Made In Heaven One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. ...
- 图上两点之间的第k最短路径的长度 ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven
131072K One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. Howe ...
- ACM-ICPC 2018 沈阳赛区网络预赛 J树分块
J. Ka Chang Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero p ...
随机推荐
- jquery的scrollTop方法
scrollTop方法设置或返回备选元素的垂直滚动条位置. 提示:当滚动条位于最顶部时,位置是0 当用于返回位置时: 该方法返回第一个匹配元素的滚动条的垂直位置 当用于设置位置时: 该方法设置所有匹配 ...
- python-day6(正式学习)
流程控制之while循环 语法 循环就是一个重复的过程,人需要重复做某项工作,那么计算机也一样.当ATM验证失败,那么计算机就会让我们再输入一次密码.这时候我们说的循环就是while循环,while循 ...
- MySql 多表关系
多表关系 一对一关系 一对一关系是最好理解的一种关系,在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面 一对多关系 班级是1端,学生是多端,结合面向对象的思想 ...
- 欧拉函数小结 hdu2588+
从费马小定理到欧拉定理 欧拉公式 再到欧拉函数.,. 小结一下欧拉函数吧 对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)----定义 欧拉函数的基本公式其中pi为x的素因子 ...
- 搭建自己的框架WedeNet(二)
WedeNet2018.Infrastructure-基础设施层:结构如下: Tools结构如下: 考虑到系统可能会有多个数据上下文(暂时以两个为例),所以根据需要定义两个T4模板用来生成对应的ent ...
- python获取文件及文件夹大小
Python3.3下测试通过 获取文件大小 使用os.path.getsize函数,参数是文件的路径 获取文件夹大小 import os from os.path import join, getsi ...
- 5 java 笔记
1 建议不要在循环体内修改循环变量的值 2 java语言没有提供goto语句来控制程序的跳转 2 java语言同样也提供了continue和break关键字来控制程序的循环结构 3 java中的标签 ...
- java字符常量
在Java程序中经常会遇到类似于"Hello"这样地字符串,那么这种类型的字符串是Java中是如何存储,下面就说明字符串常量在内存中存储方式: Java程序在编译时会将程序中出现的 ...
- Caused by: java.lang.UnsatisfiedLinkError: Couldn't load 。。。。
最近需要做个有地图搜索功能的模块,用到百度地图SDK,但是从官网上下载SDK后导入工程,修改apiKey后,还是无法运行,总是抱这个错误:Caused by: java.lang.Unsatisfie ...
- Google 开源的 Python 命令行库:初探 fire
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...