日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【2018.4.21】模拟赛之三-ssl2404 上学【深度优先搜索】

發布時間:2023/12/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【2018.4.21】模拟赛之三-ssl2404 上学【深度优先搜索】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正題


大意

有n個點,m輛車,每輛車有開車時間,需要走多久和需要多少錢。求在t個時間單位內到達可以需要花掉的最少價格


解題思路

暴力搜索能過就對了


代碼

#include<cstdio> #include<iostream> using namespace std; struct line{int next,to,st,ov,cost; }a[101]; int n,ls[101],mins,xx,yy,sts,ovs,costs,m,mn,t; bool walk[101]; void add(int xx,int yy,int sts,int ovs,int costs) {a[++m].next=ls[xx];a[m].to=yy;if (xx==1 && sts==0) sts=1;a[m].st=sts;a[m].ov=ovs;a[m].cost=costs;ls[xx]=m; }//鄰接表加邊 void dfs(int x,int ans,int longg) {//printf(" |%d(%d)(%d)| ",x,ans,longg);if (x==n && longg<=t) {mins=min(mins,ans);//求最小值return;// printf("*(%d)",ans);}walk[x]=true;//封路for (int q=ls[x];q;q=a[q].next){if (!walk[a[q].to] && longg<a[q].st){// printf("\n%d(>)\n",q);dfs(a[q].to,ans+a[q].cost,a[q].ov);//搜索// printf(" |%d| ",x);}}walk[x]=false;//回朔//printf("\n(<)\n"); } int main() {freopen("shaxu.in","r",stdin);freopen("shaxu.out","w",stdout);mins=2147483647;scanf("%d%d%d",&n,&t,&mn);for (int i=1;i<=mn;i++){scanf("%d%d%d%d%d",&xx,&yy,&sts,&ovs,&costs);add(xx+1,yy+1,sts,ovs,costs);}dfs(1,0,0);if (mins!=2147483647) printf("%d",mins);else printf("-1"); }

總結

以上是生活随笔為你收集整理的【2018.4.21】模拟赛之三-ssl2404 上学【深度优先搜索】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。