徐州網路賽2018

2022-02-18 23:03:13 字數 2478 閱讀 8992

網路賽的題比賽應該不會出了吧 嗯......

#include using namespace std;

#define ll long long

const int maxn=1005;

int down,up,s,n;

int a[maxn],b[maxn],c[maxn];

int dp[maxn][305];

int high,low;

mapmp;

int dfs(int pos,int now)

else if(now>low) return 1;

else return 0;

}if(dp[pos][mp[now]]!=-1) return dp[pos][mp[now]];

if(pos%2==1)

if(b[pos])

if(c[pos])

return dp[pos][mp[now]]=op;

}else

if(b[pos])

if(c[pos])

return dp[pos][mp[now]]=op;

}}int main()

down=-100,up=100;

memset(dp,-1,sizeof(dp));

scanf("%d%d%d%d",&n,&s,&high,&low);

for (int j = 1; j <=n; ++j)

int op=dfs(1,s);

if(op==2)

else if(op==1)

else puts("bad ending");

return 0;

}

記憶化搜尋:演算法上依然是搜尋的流程,但是搜尋到的一些解用動態規劃的那種思想和模式作一些儲存。

一般說來,動態規劃總要遍歷所有的狀態,而搜尋可以排除一些無效狀態。

更重要的是搜尋還可以剪枝,可能剪去大量不必要的狀態,因此在空間開銷上往往比動態規劃要低很多。

記憶化演算法在求解的時候還是按著自頂向下的順序,但是每求解乙個狀態,就將它的解儲存下來,

以後再次遇到這個狀態的時候,就不必重新求解了。

這種方法綜合了搜尋和動態規劃兩方面的優點,因而還是很有實用價值的

這題真的題意殺.....

挺難讀懂的,123代表已經知道的數,*代表知道是那些數但是不知道具體的,#代表未知的數。然後求期望。

#include using namespace std;

typedef long long ll;

int num[25] = ;

char mp[5][5];

int vis[10];

int cnt = 0, cnt1 = 0, cnt2 = 0;

char mp2[10];

int fial[10];

int idx = 0;

double allans = 0;

int ans[10];

int a(int n, int m)

return res;

}void check1()

void dfs2(int num)

if (fial[num] != 0) dfs2(num + 1);

else

}}void dfs(int num)

allans += maxx / (a(cnt2,cnt2)*1.0);

return;

}if (mp2[num] == '#')

else if (mp2[num] != '*')

else

}}int main()

if (mp[i][j] == '*')

cnt++;

mp2[idx++] = mp[i][j];}}

cnt2 = 9 - cnt1 - cnt;

dfs(0);

int k = a(9 - cnt1, cnt);

double tt = allans / k * 1.0;

printf("%.6lf\n", tt);

}return 0;

}

當初沒做出來,用set維護就可以解決問題。

也可以說是思維題吧

#include using namespace std;

#define ll long long

vectorvector1;

vectorvector2;

ll solve(vectorv1)

else

set1.insert(v1[i]);

}return res;

}int main()

printf("%lld\n",solve(vector1)+solve(vector2));

}

2018徐州網路賽

a.hard to prepare dp 題目 題意 環形圈中,給每人乙個號碼,求使得相鄰數字反異或為正數的方案數。有題意可推出,每兩個數反異或要麼是0要麼是正數,所以也就是讓相鄰數字反異或後不能為0。又知道,與某個數反異或之後為0的只有唯一乙個數,因此可推出第1個人到第n個人分別可選的數的個人為 ...

2018徐州網路賽F,H,I

只能來划水,只做了3題。f 隊友切的 includeusing namespace std int line,k,t,ans,x,y,len int main for auto it mp.begin it mp.end it ans max ans,len cout includeusing na...

2018 徐州網路賽 G 題解

電波 這題首先要倒著貼這樣 每次 就好了 還有就是 資料太大需要離散化 然後建線段樹,根據x軸的座標建座標軸 看 這個點的 max y 有多大 如果 y i max y 產生 貢獻 ans y x max x x軸同理 includeusing namespace std define maxn 1...