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 }
道理一样,复杂度玄学。
B. 天才绅士少女助手克里斯蒂娜
把柿子化简一下。
发现可以用树状数组维护。
一定要先把柿子化简到复杂度正常再用数据结构维护。
(喵了个b考场上死活只能打出$qn$)
C. 凤凰院凶真
蓝皮原题。
可怜的我连状态定义都记不住了。
$f[i][j]$表示$a$序列考虑到$i$,$b$序列考虑到$j$且$b[j]$必选的最大长度。
转移就很简单了。(一个值域小的数据误了我离散化???
再考虑方案。
其实记一个前驱就好了。
我是循环看了一下每一个$i$的前驱是不是当前的那一个。
是就压栈,前驱赋为前驱的前驱,继续循环。
还是干巴爹吧。——来自垃圾的挣扎。
原文地址:https://www.cnblogs.com/bilibiliSmily/p/11624817.html
时间: 2024-10-07 23:13:33