csp-s模擬測試60


csp-s模擬測試60       2019-10-05

 

RT。

又頹又垃圾。

狀態低迷,題都交不上去。

交了也是爆零,垃圾玩家沒有什么可說的,就是垃圾。

 

 A. 嘟嘟嚕

$mlogn$的毒瘤做法。

貼一個不一樣的毒瘤做法。

 1 //ans=(ans+m)%i
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <iostream>
 5 #include <algorithm>
 6 #define re register
 7 #define int long long
 8 #define fup(i,a,b) for(re int i(a);i<=b;++i)
 9 #define fdn(i,a,b) for(re int i(a);i>=b;--i)
10 using namespace std;
11 int T,n,m;
12 int R[100];
13 inline int read() {
14     re int x(0),f(1); re char ch(getchar());
15     while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
16     while(ch<='9'&&ch>='0') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
17     return x*f;
18 }
19 main() {
20     fup(i,1,25) R[i]=R[i-1]+(1ll<<i-1);
21     T=read();
22     while(T --> 0) {
23         int ans=0;
24         n=read(),m=read();
25         fup(i,2,n)
26         {
27             if(ans+10000*m<i&&i+10000<=n)
28             {
29                 ans+=10000*m;
30                 i+=10000;
31             }
32             if(ans+1000*m<i&&i+1000<=n)
33             {
34                 ans+=1000*m;
35                 i+=1000;
36             }
37             if(ans+100*m<i&&i+100<=n)
38             {
39                 ans+=100*m;
40                 i+=100;
41             }
42             if(ans+10*m<i&&i+10<=n)
43             {
44                 ans+=10*m;
45                 i+=10;
46             }
47             ans=(ans+m)%i;
48         }
49         printf("%lld\n",ans+1);
50     }
51 }
View Code

道理一樣,復雜度玄學。

 

 B. 天才紳士少女助手克里斯蒂娜

把柿子化簡一下。

發現可以用樹狀數組維護。

一定要先把柿子化簡到復雜度正常再用數據結構維護。

(喵了個b考場上死活只能打出$qn$)

 

 C. 鳳凰院凶真

藍皮原題。

可憐的我連狀態定義都記不住了。

$f[i][j]$表示$a$序列考慮到$i$,$b$序列考慮到$j$且$b[j]$必選的最大長度。

轉移就很簡單了。(一個值域小的數據誤了我離散化???

再考慮方案。

其實記一個前驅就好了。

我是循環看了一下每一個$i$的前驅是不是當前的那一個。

是就壓棧,前驅賦為前驅的前驅,繼續循環。

 

 

還是干巴爹吧。——來自垃圾的掙扎。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM