zcmimi's blog

arrow_back模拟共8篇文章

avatar
zc
2020-10-23 12:34:55

查看原题

点击跳转

95分(未特判2^64)

#include<iostream>
int n;unsigned long long k;
int main(){
    std::cin>>n>>k;
    k^=k>>1;
    while(~--n)std::cout<<(k>>n&1);
}

100分简洁代码:

avatar
zc
2020-02-13 22:22:00
查看原题

点击跳转

直接模拟

复杂度\mathcal{O}(\frac n1 + \frac n2 + , ... + \frac nn)=\mathcal{O}(n \log n)

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

题目意思就是有n个干草包,将一条路分成了n-1段区间,把起点设在这n-1段的每一段中,判断从那里开始是否能够逃脱,输出所有不能逃脱的区间长度之和。

记录每个区间能不能冲出去

一个区间只要中间有一个点可以冲出去就每个点都可以冲出去

那么我们只要一直向左边和右边冲,一直到没法继续冲位置,只要冲到一个可以冲出去的区间,就可以冲出去

冲冲冲

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

类似Moo

我们可以发现字符串每次长度变成原来的两倍

我们可以把之前不需要的状态删去

一开始按套路用递归写

然后爆栈了

应该用循环写

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

其实一点stl什么的都不用用到

区间交也就是[\max(l_i),\min(r_i)]

我们要求的就是每次删掉某个区间后其他区间的区间交

我们只需要记录最大l_i和次大l_i还有最小r_i和次小r_i

若当前要删掉的区间[l_i,r_i],l_i为最大L,那我们就取次大L

R同理

avatar
zc
2019-12-21 19:47:00
查看原题

点击跳转

直接边bfs边判断就可以了

1/1
Search
search