乙個旅遊景點,如果被帶火了的話,就被稱為「網紅點」。大家來網紅點遊玩,俗稱「打卡」。在各個網紅點打卡的快(省)樂(錢)方法稱為「攻略」。你的任務就是從一大堆攻略中,找出那個能在每個網紅點打卡僅一次、並且路上花費最少的攻略。
輸入格式:
首先第一行給出兩個正整數:網紅點的個數 n(1再下一行給出乙個正整數 k,是待檢驗的攻略的數量。隨後 k 行,每行給出一條待檢攻略,格式為:
n v1
v
2 ⋯ v
n
其中 n(≤200) 是攻略中的網紅點數,v
i 是路徑上的網紅點編號。這裡假設你從家裡出發,從 v
1 開始打卡,最後從 v
n 回家。
輸出格式:
在第一行輸出滿足要求的攻略的個數。
在第二行中,首先輸出那個能在每個網紅點打卡僅一次、並且路上花費最少的攻略的序號(從 1 開始),然後輸出這個攻略的總路費,其間以乙個空格分隔。如果這樣的攻略不唯一,則輸出序號最小的那個。
題目保證至少存在乙個有效攻略,並且總路費不超過 10
9 。
輸入樣例:
6 13
0 5 2
6 2 2
6 0 1
3 4 2
1 5 2
2 5 1
3 1 1
4 1 2
1 6 1
6 3 2
1 2 1
4 5 3
2 0 2
76 5 1 4 3 6 2
6 5 2 1 6 3 4
8 6 2 1 6 3 4 5 2
3 2 1 5
6 6 1 3 4 5 2
7 6 2 1 3 4 5 2
6 5 2 1 4 3 6
輸出樣例:
35 11
樣例說明:
第 2、3、4、6 條都不滿足攻略的基本要求,即不能做到從家裡出發,在每個網紅點打卡僅一次,且能回到家裡。所以滿足條件的攻略有 3 條。
第 1 條攻略的總路費是:(0->5) 2 + (5->1) 2 + (1->4) 2 + (4->3) 2 + (3->6) 2 + (6->2) 2 + (2->0) 2 = 14;
第 5 條攻略的總路費同理可算得:1 + 1 + 1 + 2 + 3 + 1 + 2 = 11,是一條更省錢的攻略;
第 7 條攻略的總路費同理可算得:2 + 1 + 1 + 2 + 2 + 2 + 1 = 11,與第 5 條花費相同,但序號較大,所以不輸出。
思路:鄰接矩陣+map
#include
#define inf 0x7fffffff
//#define ll long long
#define int long long
//#define double long double
#define eps 1e-8
//#define mod 1e9+7
using
namespace std;
const
int mod=
1e9+7;
const
int m=
1e5;
const
int n=
1e3+5;
//空間最大限制 4e8
int n,m;
int d[n]
[n];
struct node
;vector < node > a;
map <
int,
int> mp;
bool
cmp(node i,node j)
signed
main()
cin>>t;
for(
int index=
1;index<=t;index++
)for
(int i=
1;i<=n;i++)if
(mp[i]!=1
) flag=1;
sum+
=d[x][0
];if(sum<=
1e9&&
!flag)
}sort
(a.begin()
,a.end()
,cmp)
; cout
size()
!=0) cout<.pos<<
" "<.val;
return0;
}
L2 L3網路傳輸
其中l2網路傳輸就是物理層鏈路層,l3就是物理層 鏈路層 網路層 l2網路傳輸 這種技術是普遍用於區域網的技術,各個主機之間通過鏈路層連線在一起,通過mac識別主機的身份,最常用的就是交換機 如上圖所示,圖中是兩個電腦連乙個交換機,我舉乙個a像b發資料的例子 l3網路傳輸 l3網路是經過路由器之間進...
L2 4 網紅點打卡攻略
賽場上,得了18分,剛才提交,一次過了。比賽的時候還是想的不仔細。乙個旅遊景點,如果被帶火了的話,就被稱為 網紅點 大家來網紅點遊玩,俗稱 打卡 在各個網紅點打卡的快 省 樂 錢 方法稱為 攻略 你的任務就是從一大堆攻略中,找出那個能在每個網紅點打卡僅一次 並且路上花費最少的攻略。首先第一行給出兩個...
L2 4 網紅點打卡攻略 25分
l2 4 網紅點打卡攻略 25分 乙個旅遊景點,如果被帶火了的話,就被稱為 網紅點 大家來網紅點遊玩,俗稱 打卡 在各個網紅點打卡的快 省 樂 錢 方法稱為 攻略 你的任務就是從一大堆攻略中,找出那個能在每個網紅點打卡僅一次 並且路上花費最少的攻略。首先第一行給出兩個正整數 網紅點的個數 n 1nv...