題意:
n個金礦,每乙個金礦都有乙個初始值代表第一天裡面所含的金子數量,每天減少di,現在從金礦1出發,問最多能獲得多少金子。
思路:
用bfs的方式思考,對於每乙個狀態就是沿著路徑暴力搜尋,利用bfs層的思想,對於採金礦的時間也是合理的,但是這樣會超時,所以需要用到優化。
1. 對於時間有乙個最大的時間,可以通過輸入算出
2. 對於某乙個金礦的到達存在不同的方式,記錄到達的時間和獲得的金子數量,每次判斷是否是最優。
3. 對於金礦查詢的時候按照時間的順序從小到大排列,每次優先選擇時間早的可以避免很多計算。
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1005;
int n,m;
int ans;
int dp[maxn][maxn];
int d[maxn],v[maxn];
int head[maxn],pos;
int mday;
struct node
edge[maxn*2];
struct gold
};void add_edge(int u,int v,int w)
void bfs()
}}int main()
pos = 0;
for(int i = 1;i <= m; i++)
bfs();
printf("%d\n",ans);
return
0;}
gym初級 初始gym環境(二)
import gym env gym.make cartpole v0 print env.action space print env.observation space 輸出結果為 discrete 2 box 4,意思是動作空間中的動作是離散 discrete 的2個動作,狀態空間中的狀態是4...
gym訓練記錄
upd 12.18 老年選手也該看看歐洲的acm了,不然以後就再也沒有機會了 problem a 挺牛逼的結論,與y軸平行的直線最多隻會經過 o log c 個點,拿乙個線段樹維護一下每個x對應哪些圓即可。複雜度 o n log n log c o n problem b 對每種圖討論即可 prob...
gym 倒立擺學習
參考資料 import gym 匯入模組 from policynet import policygradient import matplotlib.pyplot as plt import time display reward threshold 1000 render false 建立乙個環...