日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

联赛前第六阶段总结

發布時間:2023/12/19 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 联赛前第六阶段总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聯賽模擬測試20

階段排名 5

A Simple

瞎搞出奇跡,成功騙到70分,水過了一道數學題。

發現30分的暴力完全可以通過60分,剩下40%一定q>nm,打表發現答案為(m-1)(n-1)/2,然后就成功水過

B Walk

30分暴力

枚舉邊權值,每次只加邊權是舉值倍數的邊,Dfs一遍,求最長鏈。

看起來很不可過,但是跑過了

C Weed (Unaccepted)

30分暴力

Drink (Unaccepted)

30分暴力,還有30分部分分

晚間測試11

階段排名 6

A 元素周期表

借鑒凱爾的思路,從看題到切掉不到10分鐘

B gcd (Unaccepted)

搞了一個半小時最后看錯題了,這個題目我真的是無fuck說,都沒看見下標這兩字就成下標了,郁悶極了,面對這樣的題目描述,我只能說,%&%……%&×……×¥……%×&%¥&¥

聯賽模擬測試19

階段排名 7

A 建設城市

一看就是數學題,推了半天沒推出來啥有用的式子,就打了個暴搜,然后記憶化了一下,特判了一下,拿了60分

容斥,答案=隨便選-至少一個不滿足的+至少兩個不滿足的-至少三個不滿足的...

至少i個不滿足,就先把i×k個拿出來,剩下的放盒子里,然后再將拿出來的放回去,這樣就是 C(n, i) * C(m - k * i - 1, n - 1)

B 軍訓隊列

寫了個DP可惜不會斜率優化,就拿了50分

正解沒用斜率優化,考慮高度只有140.00~200.00,只有6000個數,去個重,開個氧氣就過了

Show Code

    for (int i = 1; i <= n; ++i)
        f[i] = (a[i] - a[1]) * (a[i] - a[1]);
    for (int l = 2; l <= k; ++l) {
        memcpy(g, f, sizeof(double) * (n + 1));
        for (int i = 1; i <= n; ++i) {
            f[i] = 1e9;
            for (int j = 1; j <= i; ++j)
                f[i] = std::min(f[i], g[j-1] + (a[i] - a[j]) * (a[i] - a[j]));
        }
    }

寫成這樣就可以愉快的斜率優化了

原式:

[f_i=min_{j=1}^i{g_{j-1}+a_i^2-2a_ia_j+a_j^2}
]

換成(y=ax+b)形式:

[g_{j-1}+a_j^2=2a_ia_j+f_i-a_i^2
]

    for (int i = 1; i <= n; ++i)
        f[i] = (a[i] - a[1]) * (a[i] - a[1]);
    while (--k) {
        memcpy(g, f, sizeof(double) * (n + 1));
        int l = 1, r = 0;
        for (int i = 1; i <= n; ++i) {
            while (l < r && (g[i-1] + a[i] * a[i] - g[q[r]-1] - a[q[r]] * a[q[r]]) * (a[q[r]] - a[q[r-1]]) <= 
                    (g[q[r]-1] + a[q[r]] * a[q[r]] - g[q[r-1]-1] - a[q[r-1]] * a[q[r-1]]) * (a[i] - a[q[r]])) r--;
            q[++r] = i;
            while (l < r && g[q[l+1]-1] + a[q[l+1]] * a[q[l+1]] - g[q[l]-1] - a[q[l]] * a[q[l]] <= 
                    a[i] * 2 * (a[q[l+1]] - a[q[l]])) l++;
            f[i] = g[q[l]-1] + (a[i] - a[q[l]]) * (a[i] - a[q[l]]);
        }
    }

C 山屋驚魂 (Unaccepted)

好好的大模擬非得弄個期望,只能把沒有期望的那30分拿了,然后就棄了

D 彩球問題 (Unaccepted)

暴搜20分

聯考day6

階段排名 7

A 過河

全場唯一正解,我真是高興壞了,雖然我不會證明我那樣寫的正確性。

B 選數 (Unaccepted)

寫了個(O(2^nm^2))的,然后大力卡常,在register和拋棄了NOILinux的評測姬的幫助下跑過了1e9,拿了40分

C 數列 (Unaccepted)

又一道數學題,他們居然說純暴搜40分,我直呼內行,我那12分暴搜才叫純,啥情況都能枚舉到

D 模板 (Unaccepted)

看上去就像dsu,可惜我不會,最后1小時覺得70分可以用線段樹合并寫,但是由于太懶了,就去想T1了。

晚間測試10

階段排名 6

A 分組 (Unaccepted)

一眼不可做,瞎搞一通,拿了44。

B 大佬

一眼期望題也不可做,本來打的8分的暴力,結果只拿了4分,可能是NOILinux太強了

正解真是好簡單,考慮每天期望值,然后乘上n-k+1天

每天的就是i個數任意選的減去i-1個數任意選的,保證有i被選,然后乘上勞累度。

    for (int i = 1; i <= m; ++i)
        if ((ans += 1LL * (Pow(i, k) - Pow(i - 1, k) + M) * read() % M) >= M) ans -= M;
    printf("%lld
", 1LL * ans * Pow(Pow(m, k), M - 2) % M * (n - k + 1) % M);

聯考day5

階段排名 3

遺忘之祭儀

挺簡單一題,把符卡能打的記錄下來,每次掃到一個就消一遍,保證時間效率nm

考場上沒考慮符卡中沒有x的情況,丟了10分

客星璀璨之夜 (Unaccepted)

“ 雖然不清楚是不是那兩人的力量

在那個風暴肆虐的夜晚,的確有一瞬

真的在那一瞬間,在云破天開的時候

透過空隙中看到的璀璨星空,不知為何倒映眼中不能忘懷 ” ——《奇跡召喚星辰》

一看期望,打了個30分暴力就Pass了

割海成路之日 (Unaccepted)

覺得可以并查集做,搞了2小時樣例都過不了,最后就剩6分鐘了,一狠心就直接打包進去了,沒想到還能拿35分。

總結

以上是生活随笔為你收集整理的联赛前第六阶段总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。