Codeforces 467D Fedor and Essay(bfs)
来源:互联网 发布:股票数据查询接口 编辑:程序博客网 时间:2024/06/05 07:06
题目链接:Codeforces 467D Fedor and Essay
题目大意:给定一个含n个单词的文本,然后给定m种变换,要求变换后r的个数尽量少,长度尽量短,不区分大小写。
解题思路:bfs,将每个单词处理成长度以及r的个数,然后从最优的开始更新即可,类似dp。
#include <cstdio>#include <cstring>#include <map>#include <string>#include <vector>#include <queue>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5+5;typedef long long ll;typedef pair<ll, ll> pii;int M, N, sz, W[maxn];map<string, int> V;vector<int> g[maxn * 3];pii vec[maxn*3];void add (string& s) { ll len = s.length(), cnt = 0; for (int j = 0; j < len; j++) { if (s[j] >= 'A' && s[j] <= 'Z') s[j] = s[j] - 'A' + 'a'; if (s[j] == 'r') cnt++; } if (!V.count(s)) { V[s] = sz; vec[sz++] = make_pair(cnt, len); }}void init () { sz = 0; string s, e; cin >> M; for (int i = 0; i < M; i++) { cin >> s; add(s); W[i] = V[s]; } cin >> N; for (int i = 0; i < N; i++) { cin >> s >> e; add(s); add(e); g[V[e]].push_back(V[s]); }}void solve () { queue<int> que; for (int i = 0; i < sz; i++) que.push(i); while (!que.empty()) { int idx = que.front(); pii u = vec[idx]; que.pop(); for (int i = 0; i < g[idx].size(); i++) { int v = g[idx][i]; if (vec[v] > u) { vec[v] = u; que.push(v); } } } ll len = 0, cnt = 0; for (int i = 0; i < M; i++) { cnt += vec[W[i]].first; len += vec[W[i]].second; } cout << cnt << " " << len << endl;}int main () { init(); solve(); return 0;}
题目链接:Codeforces 467D Fedor and Essay
题目大意:给定一个含n个单词的文本,然后给定m种变换,要求变换后r的个数尽量少,长度尽量短,不区分大小写。
解题思路:bfs,将每个单词处理成长度以及r的个数,然后从最优的开始更新即可,类似dp。
阅读全文
0 0
- Codeforces 467D Fedor and Essay bfs
- Codeforces 467D Fedor and Essay(bfs)
- Codeforces 467D Fedor and Essay(bfs)
- Codeforces 467D. Fedor and Essay
- codeforces 467D Fedor and Essay dfs
- 【CodeForces】467D Fedor and Essay 强连通+DP
- Codeforces 467D - Fedor and Essay (反向建图 + DFS)
- Codeforces Round #267 (Div. 2) D. Fedor and Essay
- Codeforces Round #267 (Div. 2) D. Fedor and Essay
- Codeforces 467D. Fedor and Essay (Graphs,dfs,dp,hashing,strings,图论综合型好题)
- Codeforces Round #267 Div.2 D Fedor and Essay -- 强连通 DFS
- cf 267 div.2 D Fedor and Essay
- 有向图强连通分量Tarjan算法+ Codeforces Round #267 (Div. 2) D.Fedor and Essay
- Codeforces 754 D Fedor and coupons
- 【codeforces 754D】Fedor and coupons
- codeforces 754D. Fedor and coupons
- CodeForces 754D Fedor and coupons
- Codeforces 754 D Fedor and coupons
- JavaScript基础系列之二 函数
- 软件测试常考面试题-软件测试面试宝典
- Laravel-ORM带条件搜索分页
- 排列组合
- OpenCV学习之路-支持向量机SVM(一)
- Codeforces 467D Fedor and Essay(bfs)
- 数据结构学习心得——顺序栈和链栈
- 关于Tensorflow 训练时越来越慢,重启又好了
- caffeOnSpark遇到的问题,没有解决,Caffe.java是从哪儿出来的?请教下大家
- 9.IDA-重新设置函数类型、创建数组结构
- 项目绩效管理这样做有效
- js 获取当天的时间字符串 (日期部分的字符串)
- CSU-ACM2017暑假集训比赛7 B
- 搭建zookeeper集群