timus 1741. Communication Fiend URAL 解题报告 DP+读题
timus 1741. Communication Fiend URAL 解题报告 DP+读题
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=40010;
const int M=40010;
long long dp[N][2];
struct Update
{int x,y,s;char ch[10];
}pro[M];
int n,m;
bool cmp(Update u1,Update u2)
{if(u1.x!=u2.x)return u1.x<u2.x;return u1.y<u2.y;
}
int main()
{cin>>n>>m;for(int i=1;i<=m;++i){scanf("%d %d %d %s",&pro[i].x,&pro[i].y,&pro[i].s,&pro[i].ch);}sort(pro+1,pro+m+1,cmp);memset(dp,-1,sizeof(dp));// dp[1][0]=0;dp[1][1]=0;for(int i=1;i<=m;++i){if(pro[i].ch[0]=='L'){if ( dp[pro[i].x][1]!=-1&& (dp[pro[i].y][1]==-1 || dp[pro[i].y][1]>dp[pro[i].x][1]+pro[i].s ) ){dp[pro[i].y][1]=dp[pro[i].x][1]+pro[i].s ;}}else if(pro[i].ch[0]=='C'){if (dp[pro[i].x][1]!=-1&& (dp[pro[i].y][1]==-1|| dp[pro[i].y][1]>dp[pro[i].x][1]+pro[i].s ) ){///从合法的转化过来dp[pro[i].y][1]=dp[pro[i].x][1]+pro[i].s ;}if (dp[pro[i].x][0]!=-1&& (dp[pro[i].y][0]==-1|| dp[pro[i].y][0]>dp[pro[i].x][0]+pro[i].s ) ){///从盗版的转化过来dp[pro[i].y][0]=dp[pro[i].x][0]+pro[i].s ;}}else if(pro[i].ch[0]=='P'){///当前是不合法的if (dp[pro[i].x][0]!=-1&& (dp[pro[i].y][0]==-1|| dp[pro[i].y][0]>dp[pro[i].x][0]+pro[i].s ) ){///从盗版的转化过来dp[pro[i].y][0]=dp[pro[i].x][0]+pro[i].s ;}if (dp[pro[i].x][1]!=-1&& (dp[pro[i].y][0]==-1|| dp[pro[i].y][0]>dp[pro[i].x][1]+pro[i].s ) ){///从合法的转化过来dp[pro[i].y][0]=dp[pro[i].x][1]+pro[i].s ;}}}if(dp[n][0]==-1&&dp[n][1]==-1){cout<<"Offline"<<endl;}else{cout<<"Online"<<endl;if(dp[n][0]==-1)cout<<dp[n][1]<<endl;else if(dp[n][1]==-1)cout<<dp[n][0]<<endl;else cout<<min(dp[n][0],dp[n][1])<<endl;}return 0;
}
timus 1741. Communication Fiend URAL 解题报告 DP+读题相关推荐
- timus 1513. Lemon Tale URAL 解题报告
timus 1513. Lemon Tale URAL 解题报告 题目大意:就是一行字符,LB组成,一个检测员呢和L有仇啊,只要是多余K个连续的L出现,那么这条语句就不合法,为此,三名程序猿 ...
- timus 1192. Ball in a Dream URAL 解题报告 平生第一个计算几何+高中物理
timus 1192. Ball in a Dream URAL 解题报告 平生第一个计算几何+高中物理 看来高中物理没白学,这个题用我仅剩下的高中物理学知识分析下竟然找到了方法,再加 ...
- Ural 1001 Reverse Root 解题报告
题意: 求出每个数的平方根,然后倒序输出.保留四位小数. 思路: 我在Ural的第二道题,我的第一篇ural解题报告,为什么第一道题没有写呢....你们懂的.之所以选择Ural,是因为那上面的题都是原 ...
- SHU 第十届程序设计联赛(夏季赛) 解题报告
Problem A: 一日三餐开销 水题,基本上都过了,直接贴代码: 1 #include <iostream> 2 #include <cstdio> 3 using nam ...
- 2014百度之星初赛第一轮解题报告:information
Information 时间限制: 1s 内存限制: 65536K 问题描述 军情紧急,我们需要立刻开发出一个程序去处理前线侦察兵发回的情报,并做出相应的分析.现在由你负责其中的一个子模块,你需要根据 ...
- 攻防世界XCTF-WEB入门12题解题报告
WEB入门题比较适合信息安全专业大一学生,难度低上手快,套路基本都一样 需要掌握: 基本的PHP.Python.JS语法 基本的代理BurpSuite使用 基本的HTTP请求交互过程 基本的安全知识( ...
- 糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) Apare_xzc
糖果(2019第十届蓝桥杯省赛C++A组I题) 解题报告(状压dp) xzc 2019/4/5 试题 I: 糖果 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25分 [问题描述] ...
- 解题报告 (十四) 数位DP
文章目录 数位DP 解题报告 HDU 4722 Good Numbers HDU 2089 不要62 HDU 3555 Bomb HDU 3652 B-number PKU 3252 Round Nu ...
- 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(一)D、(CROC 2016 - Final Round C)Binary Table(矩阵 + 状态压缩 + FWT)(3.5)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
最新文章
- 数据结构与算法——AVL树类的C++实现
- 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
- 你真的了解 Cookie 和 Session 吗?
- [Erlang 0004] Centos 源代码编译 安装 Erlang
- C++---内联函数与宏
- matlab定义和调用函数m,Matlab学习-自定义函数与调用
- 3dContactPointAnnotationTool开发日志(八)
- const 使用方法具体解释
- top 100 liked Q (26-)
- [模板]匈牙利算法(二分图匹配)
- 直流无刷电机的一些介绍
- day02-08 python基础语法
- 浅析APP应用内及新媒体类推广渠道
- 蓝牙设备删除失败_这软件能让你的蓝牙耳机,用上AirPods的功能
- 二维数组中根据一维数组筛选出对应数据,无数据默认为空
- 使用RTT代替UART,把你的JLink变成串口调试助手~
- b站up主是怎么赚钱,b站UP主有哪些赚钱方式,通过什么赚钱?
- R语言STAMP-丰度差异比较图
- DOCKER部署gitlab-ce中文版或最新英文版
- 25个Python常用库
热门文章
- 北京大学肖臻老师《区块链技术与应用》公开课笔记-BTC
- How to do video broadcast using multicast group?
- excel公式编辑器_动态提取符合多个条件的记录,公式躲远点
- 计算机31进制表,74ls290构成31进制计数器电路图文详解
- IT狂人职场路:揭秘华为百度高管如何炼成?
- 计算机usb无法使用,Win7系统电脑USB接口无法使用解决方案
- matlab2015的marker,matlab中markersize什么意思
- 【Android】'Unfortunately, Package Installer has Stopped'的解决办法
- 高盛最新调查:Python超过汉语成为未来最重要技能,你准备学哪种编程语言?...
- java gdal tiff_GDAL读写Tiff、DEM文件