URAL 1741

思路:

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的更多相关文章

  1. DP/最短路 URAL 1741 Communication Fiend

    题目传送门 /* 题意:程序从1到n版本升级,正版+正版->正版,正版+盗版->盗版,盗版+盗版->盗版 正版+破解版->正版,盗版+破解版->盗版 DP:每种情况考虑一 ...

  2. Ural 1741 Communication Fiend(隐式图+虚拟节点最短路)

    1741. Communication Fiend Time limit: 1.0 second Memory limit: 64 MB Kolya has returned from a summe ...

  3. URAL 1741 Communication Fiend(最短路径)

    Description Kolya has returned from a summer camp and now he's a real communication fiend. He spends ...

  4. 1741. Communication Fiend(dp)

    刷个简单的DP缓缓心情 1A #include <iostream> #include<cstdio> #include<cstring> #include< ...

  5. URAL DP第一发

    列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scient ...

  6. URAL 1297 Palindrome 后缀数组

    D - Palindrome Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  7. URAL 1297 最长回文子串(后缀数组)

    1297. Palindrome Time limit: 1.0 secondMemory limit: 64 MB The “U.S. Robots” HQ has just received a ...

  8. Serial Communication Protocol Design Hints And Reference

    前面转载的几篇文章详细介绍了UART.RS-232和RS-485的相关内容,可以知道,串口通信的双方在硬件层面需要约定如波特率.数据位.校验位和停止位等属性,才可以正常收发数据.实际项目中使用串口通信 ...

  9. RS-232, RS-422, RS-485 Serial Communication General Concepts(转载)

    前面转载的几篇文章重点介绍了UART及RS-232.在工控领域除了RS-232以外,常用的串行通信还有RS-485.本文转载的文章重点介绍了RS-232.RS-422和RS-485. Overview ...

随机推荐

  1. swoole线程和进程

    pstree -a | grep php |   |       `-php server.php   主进程      |   |           |-php server.php   管理线程 ...

  2. Java事件监听的四种实现方式

    1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...

  3. VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上)

    前面两节鸡啄米讲了树形控件Tree Control,本节开始讲解标签控件Tab Control,也可以称为选项卡控件. 标签控件简介 标签控件也比较常见.它可以把多个页面集成到一个窗口中,每个页面对应 ...

  4. hdu3511 Prison Break 圆的扫描线

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=3511 题目: Prison Break Time Limit: 10000/5000 MS ( ...

  5. Django框架----Web框架本质

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  6. loj10009 P1717 钓鱼

    P1717 钓鱼 贪心+优先队列 先枚举最后走到哪个湖,然后用优先队列跑一遍贪心即可 #include<iostream> #include<cstdio> #include& ...

  7. Python descriptor 以及 内置property()函数

    Python Descriptor  1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...

  8. 如何解析读取excel数据

    简介 前段时间完成了一个输出excel的任务,感觉挺开心的,用的就是Apache POI的jar包,Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Mic ...

  9. python_paramiko_SSHException Invalid requirement, parse error at

    不加sleep(0.5)会出现SSHException: Invalid requirement, parse error at " '' "问题,原因暂时未知. 结论如下 如果不 ...

  10. Python3基础 函数 局部与全局变量同名,各管各的

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...