雖然結束這麼久才發…我也很好奇我這演算法對不對emm
演算法思路:考慮dp[
i][u
][x1
][x2
]dp[i][u][x1][x2]
dp[i][
u][x
1][x
2]為第i天,在u節點,剩x1單位的水,x2單位的食物,所剩的最多的錢
轉移部分詳見**:
#pragma gcc optimize(2)
#include
#define ll long long
#define maxn 1000005
#define inf 1e9
#define pb push_back
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
using
namespace std;
inline
intread()
while
(c<=
'9'&&c>=
'0')
return w==
1?x:
-x;}
int a[maxn]=;
vector <
int> mp[maxn]
;int n,m,d[55]
[55],dp[35]
[35][
305]
[305];
inline
intx
(int x)
inline
inty
(int y)
intmain()
rep(k,
1,n)
rep(i,
1,n)
rep(j,
1,n) d[i]
[j]=
min(d[i]
[j],d[i]
[k]+d[k]
[j])
;rep
(i,0,30
)rep
(j,1,30
)rep
(k,0
,300
)rep
(w,0
,300
) dp[i]
[j][k]
[w]=
-inf;
int s=
1,t=27;
rep(i,0,
300)
rep(j,0,
300)
for(
int i=
1;i<=
30;i++)}
}//dig
if(u==
12&&j>=
3*tx&&k>=
3*ty)
dp[i]
[u][j-
3*tx]
[k-3
*ty]
=max
(dp[i]
[u][j-
3*tx]
[k-3
*ty]
,dp[i-1]
[u][j]
[k]+
1000);
//move to adjacent
if(a[i]!=3
)}}}
}//cout-inf,ni=
0,nj=
0,nk=
0,nu=t;
rep(i,1,
30)rep(j,0,
300)
rep(k,0,
300)
cout*while(1)
*/return0;
}
27 51第二關也可套用此**解決,改改部分資料即可,但由於人懶+隊友沒用…便直接咕咕咕了。1 21 25
2 33 4
3 25
4 54 24
4 25
5 66 7
6 23
6 24
7 87 22
8 98 22
9 10
9 15
9 16
9 17
9 21
9 22
10 11
10 13
10 15
11 12
11 13
12 13
12 14
13 14
13 15
14 15
14 16
16 17
16 18
17 18
17 21
18 19
18 20
19 20
20 21
21 22
21 23
21 27
22 23
23 24
23 26
24 25
24 26
25 26
26 27
至於輸出方案,可以手玩/再寫乙個dp倒著處理解決。
咕咕咕原因同上。
2020國賽數學建模B題 穿越沙漠思路
情景非常具體,資料需要少,需緊密結合情景具體建模,不要硬套模型。編 程能力要求高一點。三問都是優化模型,注意模型之間的關聯。注意點 對遊戲規則摸清楚,不要急著建模。涉及到路線 事件的選擇,使用 0 1 變數等定義模型。最短路徑基本可以數出來,考察的是最優路徑以及路徑前對資源的購買 收益最大 中多一點...
10 29訓練賽第一場B題
題目大意 有n個隊伍之間比賽,每兩個隊伍之間都有一場比賽,因此一共有n n 1 2場比賽,但是這裡丟失了一場比賽的記錄,現在讓你通過n n 1 2 1場仍然存在的比賽記錄來判斷丟失的那條比賽記錄 是什麼。解題報告 因為每兩個隊伍之間都有一場比賽,所以每個隊伍都應該有n 1次比賽,所以只要統計存在 的...
小記第一次數模經歷 2020華為杯研賽
先來總結一下這次數模經歷吧 首先是報名參賽。其實自己數學基礎挺差的,但是八月看到學校 的競賽通知後,突然就挺想參加一下這次競賽。一是自己正在做的專案少不了應用數學知識和優化演算法,既然不可避免,只能想辦法去提公升,在我想來,數模競賽應該是乙個很好的途徑 二是想體驗一下競賽的感覺,之前是個鹹魚,沒參加...