時間限制 3000 ms
記憶體限制 65536
kb小弱的學校很喜歡修路,現在給你一張他學校的地圖,地圖上有n個點和m條雙向邊,每條邊代表一條路,這條路有可能是暢通,也有可能正在修路。大家都知道修路使得交通很不方便。所有小弱很想學校快快的把路修好,使得他能夠很輕鬆的到達主樓915去刷題。但考慮到學校的施工能力有限,小弱想讓你幫他算出學校需要集中力量馬上修好的最少路數,使得他能夠從學校任意點出發,在不經過正在施工的路下到達主樓(編號為1)。
有多組資料。
每組資料以n( 1<=n<=10000), m(1<=m<=200000)開頭。接下來一行有m行數。每行有三個數,對應於u, v, s,分別為這條路的兩端點(編號從1到n)和路況,s = 0代表暢通, s = 1 代表正在修路。輸入保證圖是連通圖。
對每組資料輸出對應的最少路數。
3 2
1 2 0
1 3 1
3 21 2 0
1 3 0
3 21 2 1
1 3 1
1
02
簡單的並查集而已...各種姿勢出錯
#include
using
namespace
std;
const
int
maxn=10001;
const
int
maxm=400004;
int
par[maxn];
struct
edge;
edge e[maxm];
int
n,m;
int
me;
int
fpar(
int
i)
bool
same(
int
a,
int
b)
void
unit(
int
a,
int
b)
int
kruskal()
}
return
ret;
}
int
solve()
me=0;
for
(
int
i=0;i
scanf
(
"%d%d%d"
,&tf,&tt,&tc);
if
(tc==0)unit(tf,tt);
else
}
}
int
ans=kruskal();
printf
(
"%d\n"
,ans);
return
0;
}
int
main()
return
0;
}
b:
時間限制 4000 ms
記憶體限制 65536 kb
小弱有n個玩具,現在小弱想把他們排列成一行,把玩具j放在玩具i的右邊相鄰的位置上,他將得到乙個高興值hij.
輸入有多組資料。
每組資料以乙個整數n(n <= 18)開頭。
接下來n行, 每行n個整數。 第i行第j列hij( hij的絕對值 <= 10000)代表把玩具j放在玩具i的右邊相鄰的位置時高興值。輸入保證hii = 0,最左邊只考慮與右邊相鄰的玩具,最右邊只考慮與左邊相鄰的玩具。
對於每組資料輸出最大高興值。
2
0 12 0
30 -1 7
3 0 3
3 3 0
2
10
.......旅行商就旅行商唄....居然還真卡在n^n^2^n
#include #include #include using namespace std;const int maxm=1<<18;
const int mindp=-200000;
int dp[maxm][18];
bool vis[maxm][18];
int h[18][18];
int n;
int dfs(int last,int m)
return ++dp[s];
}void addedge(int tfrom,int tto,int index)
int main(){
for(int ti=1;scanf("%d%d",&n,&m)==2;ti++){
memset(first,-1,sizeof(first));
memset(vis,0,sizeof(vis));
for(int i=0;i
北郵新生排位賽10解題報告
時間限制 3000 ms 記憶體限制 65536 kb 喜歡焦叔叔的小妹妹實在是太多了,以至於焦叔叔不得不給她們編號1 n。焦叔叔對於編號為質數的小妹妹有種特別的好感,由於有好感的小妹妹數目太多,焦叔叔自己都數不清楚了,請你來幫忙數一下。多組資料,每行乙個正整數n,n不大於1000000000。資料...
北郵新生排位賽8解題報告
題目出的越來越水了 時間限制 1000 ms 記憶體限制 65536 kb小弱發明了乙個好玩的遊戲,遊戲開始時給你乙個凸多邊形,這個多邊形可以任意旋轉,平移。讓你造出乙個正方形 容器 足夠大 容器的兩邊垂直,兩邊水平。用這個容器把這個多邊形完全包含,且多邊形有且只有一條邊恰好與容器下邊界重合 與外界...
北郵新生排位賽2解題報告d e
時間限制 3000 ms 記憶體限制 131072 kb學弟們來了之後,學姐每天都非常高興的和學弟一起玩耍。這一天,學姐想出了這樣乙個遊戲,她畫了一棵樹,樹上共有 n個節點,現在學姐把m m n 個石子隨機放在節點上,每個節點可以放多個,每一次操作是指把每乙個節點上的所有石子都往下移動到他某乙個子節...