UVA 111
? 這題簡直不要這么難以理解,具體翻譯可以看NOCOW上給出的翻譯:http://www.nocow.cn/index.php/UVA/111。
? 理解題意之后很明顯是一個球最長上升子序列的dp問題,定義狀態dp(i) 為第i個答案能和之前給出的答案組合得到的最高分,那么狀態轉移方程為dp(i)=max{dp(j)}+1??(0<=j<i)。
#include <iostream> #include <cstring> using namespace std; int main() {int n,r[30]={0},ss[30]={0},dp[30]={0};cin>>n;for(int i=1;i<=n;i++) cin>>r[i];int temp;while(cin>>temp){int ans=0;ss[temp]=1;for(int i=2;i<=n;i++){cin>>temp;ss[temp]=i;}for(int i=1;i<=n;i++){int Max=0;for(int j=0;j<i;j++) if(r[ss[i]]>r[ss[j]]){if(dp[j]>Max) Max=dp[j];}dp[i]=Max+1;if(dp[i]>ans) ans=dp[i];}cout<<ans<<endl;}return 0; }
?
總結
- 上一篇: LIN总线解析与UART模拟LIN从机实
- 下一篇: 小说文学行业之“盛大文学”