SRM 615 D1L2: LongLongTripDiv1
题目:http://community.topcoder.com/stat?c=problem_statement&pm=13090
参考:http://apps.topcoder.com/wiki/display/tc/SRM+615?decorator=printable
转换为最短路径模型这一步挺难想的.
代码:
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <iostream>
#include <sstream>
#include <iomanip>#include <bitset>
#include <string>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <set>
#include <map>#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <cstring>
#include <ctime>
#include <climits>
using namespace std;#define CHECKTIME() printf("%.2lf\n", (double)clock() / CLOCKS_PER_SEC)
typedef pair<int, int> pii;
typedef long long llong;
typedef pair<llong, llong> pll;
#define mkp make_pair/*************** Program Begin **********************/
int g[51][51];
long long dist[20001][51];
const long long INF = 0x7f7f7f7f7f7f7f7f;class LongLongTripDiv1 {
public:string isAble(int N, vector <int> A, vector <int> B, vector <int> D, long long T) {memset(g, 0, sizeof(g));memset(dist, 0x7f, sizeof(dist));for (int i = 0; i < A.size(); ++i) {g[ A[i] ][ B[i] ] = g[ B[i] ][ A[i] ] = D[i];} int d = 10001;for (int i = 0; i < A.size(); ++i) {if (0 == A[i] || 0 == B[i]) {d = min(d, D[i]);}} if (d > 10000) {return "Impossible";}std::set< pair<long long, pii> > Q;Q.insert(mkp(0, mkp(0, 0)));dist[0][0] = 0;pii cur;while (!Q.empty()) {cur = (*Q.begin()).second;int u = cur.second;int v = cur.first;long long m = (*Q.begin()).first;Q.erase(Q.begin());for (int i = 0; i < N; ++i) {if (g[u][i]) {int w = (v + g[u][i]) % (2 * d);long long temp = m + g[u][i];if (temp < dist[w][i]) {std::set<pair<long long, pii> >::iterator it = Q.find(mkp(dist[w][i], mkp(w, i)));if (it != Q.end()) {Q.erase(it);}dist[w][i] = temp;Q.insert(mkp(dist[w][i], mkp(w, i)));}}}}if (dist[T % (2 * d)][N - 1] <= T) {return "Possible";} else {return "Impossible";}}};/************** Program End ************************/
SRM 615 D1L2: LongLongTripDiv1相关推荐
- problem solving automation
分工一定要明确啊啊啊啊啊 Nero 数据结构 图论 DP 博弈 JayYe 数论 DP 模拟搜索 博弈 wuyiqi 数论 数据结构 图论 字符串 模拟搜索 几何 20 ...
- Topcoder SRM 697题解
Topcoder SRM 697题解 D1L1 分子分母同乘a[i]: \(a_{i}^{b_{i}+1} mod \prod a_i = 0\) 然后我们考虑质因子p,设质因子p在a[i]中出现cn ...
- SAP采购订单下传SRM
http://www.cnblogs.com/rainysblog/p/6640515.html ZPOSRM 采购订单下传SRM *&---------------------------- ...
- Dumpzilla工具第615行bug的解决办法
Dumpzilla工具第615行bug的解决办法 在Dumpzilla使用选项frequency时,会提示SQL语法错误.这是由于其中SQL语句编写错误.需要将615行中: where url lik ...
- srm linux字符界面,如何使用srm安全的删除Linux中的文件
在Linux平台上,有几个可能的工具可以完成此过程,其中一些工具不能用于删除此类信息,而另一些工具只能可靠地在磁性驱动器上工作.因此,如果您的服务器使用ssd,那么您需要确保使用适合该任务的工具.其中 ...
- SRM 583 DIV1
A 裸最短路. 1 class TravelOnMars { 2 public: 3 int minTimes(vector <int>, int, int); 4 }; 5 vector ...
- Topcoder Srm 671 Div2 1000 BearDestroysDiv2
\(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...
- srm#397_div1_500pt 矩阵乘法+快速模幂
题目地址:srm#397_div1_500 题目描述: Problem Statement NOTE: This problem statement contains superscripts t ...
- 回答一位朋友关于 SAP SRM 行业 转 CRM 行业的咨询
这位朋友在知乎上,向我发起了咨询,关于 SAP SRM 模块 转 SAP CRM 模块的可能性.首先要明确传统的 SAP CRM 解决方案有哪些,我之前这篇文章介绍过:SAP的这三款CRM解决方案,您 ...
最新文章
- benke计算机课程设计,(本科课程设计.doc
- 推荐算法-聚类-K-MEANS
- 若谷歌实用量子计算机难产,拉里·佩奇会把它砍掉吗?
- git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目
- Remoting系列专题---自定义序列化类
- 从CLI监视OpenJDK
- 分析华为毕昇JDK8:一个性能开关
- php.ini gd_php安装gd扩展
- word页眉页脚页码设置详解
- “POW'ER 2020 DEFI 创新者大会” | Conflux CTO 伍鸣畅谈公链如何成为 DeFi 的完美世界...
- 如何解决“无法连接到文件共享,因为它不安全。 此共享需要旧的 SMB1 协议”问题
- 系统镜像ISO、GHO、WIM、ESD的区别
- 调css p 段落间距,html P标签段落 CSS段落间距距离调整
- Linux服务器硬盘故障后恢复数据的方法和数据恢复过程
- 这几款摸鱼神器,让我惊了!
- uniapp 中 Cannot read property ‘length‘ of undefined 报错处理
- Linux 开启22 端口
- 一种简单的直观的高效的权限设计
- MySQL批量修改数据
- 联想超融合架构:应运而生的新一代数据中心
热门文章
- 高中信息技术html语言,高中信息技术《Python语言》模块试卷
- vue-router back 返回时携带参数
- 2019各大互联网公司产品校招笔试
- 如何统一管理谷歌GKE、AWS EKS和Oracle OKE
- Dockerfile 中 CMD 为什么要避免使用 sh -c
- python中表示绝对值的函数_用于获取绝对值的用户定义函数
- js node.js读取excel文件返回为json文本
- Shell 编程4(退出,测试,判断)
- 图的邻接矩阵表示法及顶点入度、出度的计算方法
- 邮件服务器怎么设置mx记录,什么是MX记录?如何设置、检测MX记录