• bzoj 1003


    DP+SPFA?貌似很水,可要看了题解后才秒懂,自己想不出QAQ

     1 #include<bits/stdc++.h>
     2 #define inc(i,l,r) for(i=l;i<=r;i++)
     3 #define dec(i,l,r) for(i=l;i>=r;i--)
     4 #define inf 1e9
     5 #define mem(a) memset(a,0,sizeof(a))
     6 #define NM 100+5
     7 using namespace std;
     8 struct edge{
     9     int t,v;
    10     edge *next;
    11 }e[1000],*h[NM];
    12 struct tmp{
    13     int s,t,v;
    14 }a[1000];
    15 int c[NM][NM],i,j,k,va,n,m,p,s,d[NM],x,y,t,f[NM];
    16 bool v[NM],b[NM];
    17 queue<int >q;
    18 void add(int x,int y,int v){
    19     e[++s].t=y;e[s].v=v;e[s].next=h[x];h[x]=&e[s];
    20 }
    21 int spfa(){
    22     mem(v);mem(d);
    23     q.push(1);v[1]++;d[1]++;
    24     while(!q.empty()){
    25         int t=q.front();v[t]=false;q.pop();
    26         for(edge *j=h[t];j;j=j->next)
    27         if(!b[j->t]&&(!d[j->t]||d[j->t]>d[t]+j->v)){
    28             d[j->t]=d[t]+j->v;
    29             if(!v[j->t]){
    30                 v[j->t]++;q.push(j->t);
    31             }
    32         }
    33     }
    34     return --d[m];
    35 }
    36 int main(){
    37     scanf("%d%d%d%d",&n,&m,&va,&p);
    38     inc(i,1,p){
    39         scanf("%d%d%d",&x,&y,&t);
    40         add(x,y,t);add(y,x,t);
    41     }
    42     scanf("%d",&p);
    43     inc(i,1,p)scanf("%d%d%d",&a[i].v,&a[i].s,&a[i].t);
    44     inc(i,1,n)
    45     inc(j,i,n){
    46         mem(b);
    47         inc(k,1,p)
    48         if(i<=a[k].t&&j>=a[k].s)b[a[k].v]++;
    49         c[i][j]=spfa();
    50     }
    51     inc(i,1,n)f[i]=inf;f[0]=-va;
    52     inc(i,1,n)
    53     inc(j,1,i)
    54     if(c[j][i]!=-1)f[i]=min(f[i],f[j-1]+c[j][i]*(i-j+1)+va);
    55     printf("%d",f[n]);
    56     return 0;
    57 }
    View Code
  • 相关阅读:
    BLE编程中关键步骤
    gradle相关配置内容解析
    Gradle版本变更的问题
    【问题】AndroidStudio导入项目一直卡在Building gradle project infod的最快速解决方案
    jdbc.properties各种数据库连接配置
    EL表达式语言总结
    Android sdk目录介绍
    chrome的常用快捷键和命令
    Unity Hub for Mac 破解
    MAC下安装配置Tomcat
  • 原文地址:https://www.cnblogs.com/onlyRP/p/4731574.html
Copyright © 2020-2023  润新知