OpenJudge Trans
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<string>
#include<vector>
#include<set>
#include<queue>
#include<map>
using namespace std;
const int inf=(int)1E9,maxT=100+1,maxn=20,maxm=1000;
int T,n,k,m,Fuck[1010][1010];
struct Edge
{
int t,c;
Edge*next;
Edge(int _t,int _c,Edge*_n):t(_t),c(_c),next(_n){}
}*E[maxn]={0};
struct Vertex
{
int D[maxT];
Vertex(){memset(D,0,sizeof(D));}
void Ins(int l,int r)
{
	for(int i=l;i<=r;i++)	D[i]=1;
}
void Set()
{
	for(int i=1;i<=T;i++) D[i]+=D[i-1];
}
bool ok(int l,int r)
{
	return D[r]==D[l-1];
}
}V[maxn];
void InsEdge(int s,int t,int c)
{
	E[s]=new Edge(t,c,E[s]);
	E[t]=new Edge(s,c,E[t]);
}
void Init()
{
	memset(Fuck,-1,sizeof(Fuck));
	cin>>T>>n>>k>>m;int s,t,c;
	while(m--)
	{
	scanf("%d %d %d",&s,&t,&c);
	InsEdge(s-1,t-1,c);
	}
	int p,a,l,r;cin>>p;
	while(p--)
	{
	scanf("%d %d %d",&a,&l,&r);
	V[a-1].Ins(l,r);
	}
	for(int i=0;i<n;i++)V[i].Set();
	}
int Cost(int l,int r)
{
	if(Fuck[l][r]!=-1)	return Fuck[l][r];
	static int dist[maxn];
	static bool inq[maxn];
	for(int i=0;i<n;i++) dist[i]=inf,inq[i]=false;
	queue<int> Q;
	Q.push(0);inq[0]=true;dist[0]=0;
	while(Q.size())
	{
		int t=Q.front();Q.pop();inq[t]=false;int cost=dist[t];
		for(Edge*e=E[t];e;e=e->next)
		{
			int ncost=cost+e->c,v=e->t;
			if(!V[v].ok(l,r))continue;
			if(dist[v]>ncost)
			{
				dist[v]=ncost;
				if(!inq[v]) Q.push(v),inq[v]=true;
			}
		}
	}
	return Fuck[l][r]=dist[n-1];
}
int dp[maxT];
void Work()
{
	dp[0]=0;
	for(int i=1;i<=T;i++)
	{
		dp[i]=inf;
		for(int j=i-1;j>=0;--j)
		{
			int c=Cost(j+1,i);
			if(c==inf)break;
			dp[i]=min(dp[i],dp[j]+c*(i-j)+k);
		}
	}
	cout<<dp[T]-k<<endl;
}
int main()
{
//freopen("trans.in","r",stdin);
Init();
Work();
}
OpenJudge Trans的更多相关文章
- 【OpenJudge 8463】Stupid cat & Doge
		
http://noi.openjudge.cn/ch0204/8463/ 挺恶心的一道简单分治. 一开始准备非递归. 大if判断,后来发现代码量过长,决定大打表判断后继情况,后来发现序号不对称. 最后 ...
 - 【OpenJudge 191】【POJ 1189】钉子和小球
		
http://noi.openjudge.cn/ch0405/191/ http://poj.org/problem?id=1189 一开始忘了\(2^{50}\)没超long long差点写高精度Q ...
 - 【OpenJudge 1665】完美覆盖
		
http://noi.openjudge.cn/ch0405/1665/?lang=zh_CN 状压水题,手动转移 #include<cstdio> #include<cstring ...
 - 【OpenJudge 1793】矩形覆盖
		
http://noi.openjudge.cn/ch0405/1793/ 好虐的一道题啊. 看数据范围,一眼状压,然后调了好长时间QwQ 很容易想到覆盖的点数作为状态,我用状态i表示至少覆盖状态i表示 ...
 - java项目调用kettleJob和Trans
		
1.调用本地Job和Trans 较简单不用多说没有遇到任何问题,以下是代码: import org.pentaho.di.core.KettleEnvironment; import org.pent ...
 - bdb mvcc: buffer 何时可以被 看到; mvcc trans何时被移除
		
# txn.h struct __db_txnregion SH_TAILQ_HEAD(__active) active_txn; SH_TAILQ_HEAD(__mvcc) mvcc_txn; # ...
 - OpenJudge 2990:符号三角形 解析报告
		
2990:符号三角形 总时间限制: 1000ms 内存限制: 65536kB 描述 符号三角形的第1行有n个由“+”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“ ...
 - BZOJ-1003    物流运输trans     SPFA+DP
		
傻逼错误耗我1h,没给全范围坑我1A.... 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Submit: 529 ...
 - OpenJudge 7624 山区建小学
		
在openjudge似乎无法凭题号搜到题...? 总时间限制: 1000ms 内存限制: 65536kB 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任 ...
 
随机推荐
- RedHat9通过Host-only配置网络连接
			
首先我用的是VMware8版本安装的RedHat9.VMware给我们提供了三种让虚拟机里的安装系统连上网的方式.分别是Host-only,Bridge,NAT.我要讲的是Host-only. 第一步 ...
 - softlayer
 - vi常用命令集锦
			
转载,原文地址:http://blog.csdn.net/hackbuteer1/article/details/6575232 vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握这三种模式十分 ...
 - java保留有效数字
			
DecimalFormat df=DecimalFormat("######0.0") double d = df.format(xx): 保留一位就是"######0. ...
 - Unity3D 灰度shader(改编自NGUI)
			
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[] 本文链接地址: 灰度shader 废话不多说,直接图解流程: 1.原图 2.改动shader 打开NGUI自带的shader ...
 - Rainmeter 雨滴桌面 主题分享
			
说明 先安装主程序 Rainmeter-3.1.exe,然后安装 Techzero_1.0.rmskin,打开主题管理应用主题就可以. 下载 http://pan.baidu.com/s/1i3zI3 ...
 - [CSS] CSS Transitions: Delays and Multiple Properties
			
<!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery- ...
 - Android --------- 标签include位置设置无效
			
给include设置below或align无效,是因为没有给include设置width和height.
 - uva 10935 throwing cards away <queue>
			
Given is an ordered deck of n cards numbered 1 to n with card 1 at the top and card n ...
 - css 实现进度条
			
<select id="progress" onchange="changeProgress(this)"> <option value=&q ...