我看正解好像是\(n^2\)的,可蒟蒻的我只能想到\(n^3\),不過資料水,還是讓我卡過去了
¥( ≧ ▽ ≦ )¥
開始講演算法吧:設\(f[i][j]\)為等差數列最後一項為\(i\),倒數第二項為\(j\)的方案數,這種狀態好像有點奇怪,但還是可以做滴。
狀態定義出來了,轉移就簡單了,三重迴圈暴力列舉,當\(a[i]-a[j]==a[j]-a[k]\)時,\(f[j][i]+=f[k][j]\),最後統計答案,歐了。
#include#define re register
#define mod 998244353
using namespace std;
const int n=1005;
int n,a[n];
long long ans,f[n][n];
int main()
ans=(f[j][i]+ans)%mod;
} }printf("%lld",ans);
return 0;
}
這題就比較好玩了,想了十來分鐘,都只是乙個\(o(nws)\)時間複雜度的演算法,所以就只能想想優化了啦。
這題狀態比較好想,\(f[i][j]\)為放完了前\(i\)個後,鍋內還剩\(j\)個的耐久度最大值。同時轉移方程也比較簡單:
\(~~~~~~~~~~~~~~~~~~~~~~~~ f[i][j]=max~\)\(~+a[i]\times j\)
其中\(j-1\le k\le j+s-1\)
然後你就會發現,\(tle\)滿天飛。
#include#define re register
#define min(x,y) ((x)<(y)?(x):(y))
#define max(x,y) ((x)>(y)?(x):(y))
#define inf 1e18
using namespace std;
const int n=5555;
int n,w,s,st[n],l,r;
long long a[n],que[n],f[n][n],ans=-inf;
int main()
for(re int j=1;j<=min(w,i);j++)
}}// for(re int i=1;i<=n;i++)
// for(re int i=1;i<=w;i++)ans=max(ans,f[n][i]);
printf("%lld",ans);
return 0;
}
這題輸入給的是排好隊後的序列,因為不知道每個人是從哪邊插入的佇列,所以需要一維陣列表示插入方向。
因此,狀態就出來了,\(f[i][j][0/1]\)表示從\(i\)號位置至前\(j\)位的序列,且最後乙個人是從哪個方向插入的(\(0\)表示左,\(1\)表示右
所以狀態轉移方程就出來了:
\[f[i][j][1]+=f[i-1][j-1][1]~~~~ a[i]>a[i-1]
\]\[f[i][j][1]+=f[i-1][j-1][0]~~~~ a[i]>a[i-j+1]
\]\[f[i][j][0]+=f[i][j-1][0]~~~~ a[i-j+1]
\[f[i][j][0]+=f[i][j-1][1]~~~~ a[i-j+1]
要注意的一點是:在\(j=2\)時,\(i-1=i-j+1\),會重複加,所以要特判。
#include#define re register
#define mod 19650827
using namespace std;
const int n=1005;
int n,a[n],f[n][n][2],ans;
int main()
for(re int k=j;kf[j][i]=min(f[j][i],f[j][k]+f[k+1][i]);
} printf("%d",f[1][n]);
return 0;
}
回顧(練習題)
簡述 django mvc 和 mtv mvc 全名是model view controller 是模型 model 檢視 view 控制器 controller 的縮寫 一種軟體設計典範,用一種業務邏輯 資料 介面顯示分離的方法組織 將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動...
練習題目2
1 將陣列a中的內容和陣列b中的內容進行交換 陣列一樣大 思路 新建乙個陣列作為中間陣列進行交換.如下 2 計算1 1 1 2 1 3 1 4 1 5 1 99 1 100的值.思路 通過每一輪迴圈給分子乘以 1來控制加數的正負號,計算出和.如下 3 編寫程式數一下1到199的所有整數 現過多少次數...
程式練習題 2
考慮如下的序列生成演算法 從整數 n 開始,如果 n 是偶數,把它除以 2 如果 n 是奇數,把它乘 3 加1。用新得到的值重複上述步驟,直到 n 1 時停止。例如,n 22 時該演算法生成的序列是 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1。人們猜想 沒有...