URAL 1741 Communication Fiend
思路:
dp
状态:dp[i][1]表示到第i个版本为正版的最少流量花费
dp[i][0]表示到第i个版本为盗版的最少流量花费
初始状态:dp[1][0]=dp[0][0]=0
目标状态:min(dp[n][0],dp[n][1])
状态转移:见代码,注意如果是cracked版本,如果原来是盗版,转移后还是盗版
代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a)) const int N=1e4+;
const ll INF=0x3f3f3f3f3f3f3f3f;
ll dp[N][];
bool vis[N];
int head[N];
struct edge{
int to,w,f,next;
}edge[N];
int cnt=;
void add_edge(int u,int v,int w,int f){
edge[cnt].to=v;
edge[cnt].w=w;
edge[cnt].f=f;
edge[cnt].next=head[u];
head[u]=cnt++;
}
int main(){
ios::sync_with_stdio(false);
cin.tie();
int n,m,x,y,d,t;
string s;
cin>>n>>m;
mem(head,-);
for(int i=;i<m;i++){
cin>>x>>y>>d>>s;
if(s[]=='L')t=;
else if(s[]=='P')t=;
else t=;
add_edge(x,y,d,t);
}
mem(dp,INF);
dp[][]=;
dp[][]=;
for(int i=;i<=n;i++){
for(int j=head[i];~j;j=edge[j].next){
if(edge[j].f==){
dp[edge[j].to][]=min(dp[edge[j].to][],dp[i][]+edge[j].w);
}
else if(edge[j].f==){
dp[edge[j].to][]=min(dp[edge[j].to][],min(dp[i][],dp[i][])+edge[j].w);
}
else if(edge[j].f==){
dp[edge[j].to][]=min(dp[edge[j].to][],dp[i][]+edge[j].w);
dp[edge[j].to][]=min(dp[edge[j].to][],dp[i][]+edge[j].w);
}
}
}
ll ans=min(dp[n][],dp[n][]);
if(ans==INF)cout<<"Offline"<<endl;
else {
cout<<"Online"<<endl;
cout<<ans<<endl;
}
return ;
}
URAL 1741 Communication Fiend的更多相关文章
- DP/最短路 URAL 1741 Communication Fiend
题目传送门 /* 题意:程序从1到n版本升级,正版+正版->正版,正版+盗版->盗版,盗版+盗版->盗版 正版+破解版->正版,盗版+破解版->盗版 DP:每种情况考虑一 ...
- Ural 1741 Communication Fiend(隐式图+虚拟节点最短路)
1741. Communication Fiend Time limit: 1.0 second Memory limit: 64 MB Kolya has returned from a summe ...
- URAL 1741 Communication Fiend(最短路径)
Description Kolya has returned from a summer camp and now he's a real communication fiend. He spends ...
- 1741. Communication Fiend(dp)
刷个简单的DP缓缓心情 1A #include <iostream> #include<cstdio> #include<cstring> #include< ...
- URAL DP第一发
列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scient ...
- URAL 1297 Palindrome 后缀数组
D - Palindrome Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Subm ...
- URAL 1297 最长回文子串(后缀数组)
1297. Palindrome Time limit: 1.0 secondMemory limit: 64 MB The “U.S. Robots” HQ has just received a ...
- Serial Communication Protocol Design Hints And Reference
前面转载的几篇文章详细介绍了UART.RS-232和RS-485的相关内容,可以知道,串口通信的双方在硬件层面需要约定如波特率.数据位.校验位和停止位等属性,才可以正常收发数据.实际项目中使用串口通信 ...
- RS-232, RS-422, RS-485 Serial Communication General Concepts(转载)
前面转载的几篇文章重点介绍了UART及RS-232.在工控领域除了RS-232以外,常用的串行通信还有RS-485.本文转载的文章重点介绍了RS-232.RS-422和RS-485. Overview ...
随机推荐
- 文件操作(CRT、C++、WIN API、MFC)
一.使用CRT函数文件操作 二.使用标准C++库 std::fstream std::string 1)std::string对象内部存储了一个C的字符串,以'\0'结尾的. 2)std::strin ...
- 解读jquery.filtertable.min
jQuery.FilterTable是一款表格搜索过滤和单元格高亮插件. 该插件允许你对任意表格进行条件过滤,并且它会将搜索到的结果单元格高亮显示,非常实用和强大. 使用方法在页面中引入jquery和 ...
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...
- linux常用命令:ifconfig 命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- python socket编程函数介绍
网上看到一个socket中常用函数的介绍,记录一下 https://blog.csdn.net/rebelqsp/article/details/22109925
- Linux服务器配置---ftp限制带宽
限制带宽 ftp服务器可以设置每个用户的带宽,这样根据实际需求来分配,更加充分的利用系统资源.带宽通过参数“anon_max_rate“和”local_max_rate“来设置,这两个参数在配置文件中 ...
- 基于qml创建最简单的图像处理程序(1)-基于qml创建界面
<基于qml创建最简单的图像处理程序>系列课程及配套代码基于qml创建最简单的图像处理程序(1)-基于qml创建界面http://www.cnblogs.com/jsxyhelu/p/83 ...
- poj 3368 Frequent values -Sparse-Table
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16537 Accepted: 5981 Description You ...
- Win32 实现 MFC CFileDialog 对话框
void CWriteWnd::OpenFileDialog() { OPENFILENAME ofn; TCHAR szFile[MAX_PATH] = _T(""); Zero ...
- <OFFER> 06_PrintListInReversedOrder
#include<stack> #include "List.h" void PrintListReversingly_Iteratively(ListNode* pH ...