省選測試21

2022-02-17 18:56:04 字數 1240 閱讀 6981

縣里讓做核酸檢測,做的時候到挺快,排隊排了一上午,又沒交

題目大意 : 參加比賽可以獲得一定的愉悅值,連續不參見會減少,求能獲得的最大愉悅值

show code

#include #include #include using namespace std;

typedef long long l;

const int n = 1e5 + 5;

int read(int x = 0, int f = 1, char c = getchar())

l f[n];

int n, a[n], p[n], q[n];

bool cmp(int x, int y)

l f(int x)

double cal(int x, int y)

void solve(int l, int r)

while (l < r && f[q[l]] + a[p[j]] - f(p[j] - q[l]) <= f[q[l+1]] + a[p[j]] - f(p[j] - q[l+1])) l++;

if (l <= r) f[p[j]] = max(f[p[j]], f[q[l]] + a[p[j]] - f(p[j] - q[l]));

}sort(p + l, p + r + 1, cmp);

solve(mid + 1, r);

}int main()

題目大意 :

show code

題目大意 : 從1~n中選出k個能組成所有序列(從小到大排序)按字典序排序後相鄰序列各位置差的絕對值

show code

#include using namespace std;

const int n = 2e6 + 5, m = 1e9 + 7;

int n, k, m, fac[n], fai[n], ans;

int pow(int a, int k, int ans = 1)

void pre(int n)

int c(int n, int m)

int main()

for (int i = 0; i <= n; ++i)

if ((ans += c(m-1+i, m-1)) >= m) ans -= m;

printf("%d\n", ans);

return 0;

}

省選測試21

設 f i 為上一次參加的比賽是第 i 場的最大愉悅值 則 f i max f i f j frac a i j 對於隨機的資料,把列舉的範圍卡到 3000 即可 容易發現,如果沒有 a j leq a i 的限制,那麼就是乙個裸的斜率優化 dp 把 f i frac frac 看做 y 把 i 看...

省選測試9

這個名次已經是倒數了 感覺整場考試不是很在狀態,正解想不到,暴力分也沒有打滿 其實前兩道題仔細推一下還是能想出來的 t1 2 sat 有一段時間沒有打了 優化建圖的方式和之前的某道題挺像的,但是當時那道題沒改 這次算是補了乙個鍋 t2 的資料範圍折半列舉也不難想,實現時注意一下細節就行了 t3 有一...

省選測試28

題目大意 給乙個排列,翻轉k次,問最終逆序對個數的期望值 然後在用兩個字首和分別優化這3種轉移就好了 show code include define mod x using namespace std const int n 505,m 1e9 7 int n,k,a n f n n s1 n n...