/img/dodola.png

一只小菜鸡的Blog

Codeforces Round 990 (Div. 2)

Alyona按照顺时针围绕第一个拼图放置拼图,Alyona每天会按顺序放置一定数量的拼图,如果一天结束时拼图的组装部分没有任何已开始但未完成的层,Alyona会感到开心。给出每天放置拼图的数量,询问Alyona感到快乐的天数。

  • $1\leq t\leq 500$
  • $1\leq n\leq 100$
  • $1\leq a_i\leq 100,a_1=1$

检查每天完成添加拼图时的总拼图数是否恰好是一个奇数的平方数,若是则该天会感到快乐。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
void solve() {
  cin >> n;
  ll tot = 0, ans = 0;
  for (ll i = 1; i <= n; i++) {
    cin >> a[i];
    tot += a[i];
    ld t = sqrtl(tot);
    if ((ll)t & 1 && t == (ll)t) {
      ans++;
    }
  }
  cout << ans << '\n';
}

在一个长度为$n$的字符串中,执行一次这样的操作:

  • 选择两个索引$i,j(1\leq i,j\leq n)$,可以选择$i = j$。
  • 进行赋值$s_i:=s_j$。

要求输出在进行该操作之后,字典序最小的那个字符串。

Codeforces Round 980 (Div. 2)

有两种储值方式——无利可图和盈利,“盈利”可以保证盈利,但是有最低储值要求,“无利可图”类型没有利息,但是可以让“盈利”的最低储值降低。在“无利可图”储值$x$元,可以让“盈利”的最低值要求降低$2\times x$元,最低储值不能低于$0$元,两种储值均不能取出。现在Alice拥有$a$元,并想使存入“盈利”的金额越多越好,求Alice最多存入多少“盈利”类型的金额。

2023杭州ICPC区域赛

$n\times m$的网格中有一条长度为$k$的贪吃蛇,贪吃蛇支持上下左右移动 1 格的操作,以及缩短 1 个身体长度的操作。

设$f(i,j)$为从蛇头从初始位置到达网格中点$(i,j)$所需要的最少的操作数,网格中不可到达的格子操作数设为$0$,求解输出:

刷题记录||区间动态规划

区间动态规划一般以区间作为动态规划的阶段。

在一个圆形操场的四周摆放 $N$ 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的 $2$ 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。

线段树专题练习