UVa910 TV game
用dp(i,j)表示第i步到第j个点的计数,则状态转移方程为
dp(i,j) += dp(i - 1,k) ,当且仅当k到j存在边时
代码如下:
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
#include <string>class Solution
{
public:void init(){memset(move, 0x00, sizeof(move));memset(dp, 0x00, sizeof(dp));special.clear();}void addEdge(int s, int d1, int d2){move[s][0] = d1; move[s][1] = d2;}void setn(int n){this->n = n;}void setm(int m){this->m = m;}void setSpecial(std::vector<int> v){for (int spe : v){special.push_back(spe);}}int solve(){dp[0][1] = 1;for (int i = 1; i <= m; i++){for (int j = 1; j <= n; j++){for (int k = 1; k <= n; k++){if (dp[i - 1][k] && move[k][0] == j){dp[i][j] += dp[i - 1][k];}if (dp[i - 1][k] && move[k][1] == j){dp[i][j] += dp[i - 1][k];}}}}int ans = 0;for (int v : special){ans += dp[m][v];}return ans;}
private:static const int MAXV = 27;static const int MAX_MOVE = 31;int move[MAXV][2];std::vector<int> special;int n, m;int dp[MAX_MOVE][MAXV];
};Solution solution;int main()
{
#ifndef ONLINE_JUDGEstd::ifstream fin("f:\\OJ\\uva_in.txt");std::streambuf* back = std::cin.rdbuf(fin.rdbuf());std::ofstream fout("f:\\OJ\\uva_out.txt");std::streambuf* outback = std::cout.rdbuf(fout.rdbuf());
#endifint n;while (std::cin >> n){solution.init();solution.setn(n);std::vector<int> v;for (int i = 0; i < n; i++){std::string s, d1, d2, spe;std::cin >> s >> d1 >> d2 >> spe;int from = s[0] - 'A' + 1;int to1 = d1[0] - 'A' + 1;int to2 = d2[0] - 'A' + 1;solution.addEdge(from, to1, to2);if (spe == "x"){v.push_back(from);}}solution.setSpecial(v);int m;std::cin >> m;solution.setm(m);int ans = solution.solve();std::cout << ans << std::endl;}#ifndef ONLINE_JUDGEstd::cin.rdbuf(back);std::cout.rdbuf(outback);
#endifreturn 0;
}
UVa910 TV game相关推荐
- 超级直播tv港澳台版2020_直播链接 2020年泉州足球超级联赛 第一轮
2020年 泉州足球超级联赛 直播观看方式 点击小程序卡片,进入小程序 (截止11月20日18时,人气值排名如下所示) 或长按扫描小程序码,进入直播页面 看直播,参与"人气PK", ...
- 蘑菇模拟器TV版 for Android,安卓NES模拟器TV版下载
NES Emulator TV精选了上千款经典的红白机小游戏,我们小时候玩过的经典游戏都能够在这里找到,每一款游戏在这里都能够分别存档,没有太多时间的上班族可以尝试一下,给玩家带来最好的游戏体验. 软 ...
- android+tv+自动切换,Android TV 重写GridView,实现焦点放大效果
关于缩放,使用了view.setScaleX/Y 方法,api11以上即可. 重写dispatchDraw(),绘制选中项的焦点效果.(注意带阴影的焦点图需要微调偏移量) 要将选中项绘制显示在顶层,所 ...
- 【CNN基础】常见的loss函数及其实现(一)——TV Loss
Total Variation loss 在图像复原过程中,图像上的一点点噪声可能就会对复原的结果产生非常大的影响,因为很多复原算法都会放大噪声.这时候我们就需要在最优化问题的模型中添加一些正则项来保 ...
- 芒果TV 2021 互联网人才招聘
长沙,关键词是什么? 小龙虾.臭豆腐 马栏山 中国最具幸福感城市 芒果TV,关键词是什么? 天生青春,NO.1 中国互联网百强 世界媒体五百强 理想,非得在北上广实现么? 其实,追梦的路上不一定是冰冷 ...
- Unit24 What's on TV tonight?
What's on TV tonight? Nothing special. There is something special about him. There is nothing specia ...
- Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
原文:Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必 ...
- 爱立信为T-Mobile荷兰全新的OTT TV业务提供强大支持
爱立信被T-Mobile 荷兰选中,将为其新的OTTTV业务KNIPPR提供在线视频平台. 根据双方签署的多年期协议,爱立信负责提供完整的端到端在线视频业务,包括内容管理和制备.数字版权管理和内容分发 ...
- Android TV 悬浮球模拟物理按键
最近在体验实习的时候做了一个TV的内存管家,其中有个要求是实现一个悬浮球,模拟TV控制器的按键,实现上下左右,back,menu,home等效果,并且做一个火箭升空的效果.这时候才发现网上有关tv ...
最新文章
- Python模型顶点法线修复
- springboot入门知识点(一)
- boost::shared_ptr shared_from_this
- 快速搭建 Serverless 在线图片处理应用
- 岗位推荐 | 微软小冰团队招聘数据挖掘/算法工程师实习生
- Vue第二部分(1):组件基础学习
- Android--------从一个包中的Avtivity创建另外另外一个包的Context
- Android Studio(8)---为新设备添加模块
- ASP.NET 2.0 本地化功能:本地化 Web 应用程序的新方法
- webpack的sourcemap
- 使用JS访问本地数据库
- 联想thinkpad E430C硬盘位换为固态,硬盘放于光驱位(win7+win10+ubuntu三系统安装教程)
- 三星s8php,三星S8 Type C接口连接电视体验
- 【R语言技巧】apply篇 sumNotes
- 中国地质大学武汉大学计算机学院,董燕妮-地球物理与空间信息学院
- 基于Geomesa服务查询轨迹数据无法根据空间和时间范围进行查询的问题解决办法
- Apollo Cyber实践之talker-listener通信
- 4 RRC Measurement -- 配置
- 前端-----之-----轮播
- 乳山金岭中学校计算机老师,乳山市金岭中学
热门文章
- python爬虫如何从一个页面进入另一个页面-Python爬虫信息输入及页面的切换方法...
- python用什么软件编程1001python用什么软件编程-怎样才能写出 Pythonic 的代码 #P1001#...
- 学python以后是做什么工作-对话极客晨星:现在学Python 长大可以从事什么工作?...
- python能参加奥赛吗-家长们注意了!关于信息学奥赛(NOIP),你需要知道这些...
- 查看电脑python虚拟环境-Windows系统下,Python虚拟环境搭建
- python3.7.2教程-python 3.7极速入门教程2 Hello与变量
- python语言实战-别找了,这是 Pandas 最详细教程了
- python类型-Python基本内置数据类型有哪些?
- python进阶书籍的推荐-Python 入门到进阶书籍推荐
- python 数据分析学什么-利用Python做数据分析 需要学习哪些知识