A. Point on Spiral

  • 由于坐标\(、|x|、|y| \le 100\),所以可直接bfs计算。
  • 若数据较大,需要找规律。

B. Books

  • 维护窗口\([l,r]\),使\(\sum_{i=l}^{r}{a_i} \le t\)。

C. Ladder

  • 预处理出\(L_i\)表示位置i向右可以递增多少距离,\(R_i\)则表示向左。
  • 那么若\(l,r\)满足题意的话,则\(L_l+R_r \gt r - l + 1\)。

D. The Minimum Number of Variables

  • \(dp(mask)\)表示当前存储变量的状态。
  • 若要计算\(a_t\),需要在\(、i、j \lt t\)中找\(a_i + a_j = a_t\)的pair,新值\(a_t\)可以有两种选择:用新变量存储、或者用之前已存在的变量。

E. Beautiful Decomposition

  • 对于连续的1来说,有两种操作:用\(2^i-2^j\)组成;或者\(\sum{2^i}\) 组成。
  • 观察样例1101101,在使用\(2^i-2^j\)形式获得连续的1之外,可以拓展到后面的0,使得后续的1可以直接使用\(-2^k\)组成,但是两个1中间的0会变成1,所以需要额外付出将0变成1的代价。
  • 先将字符串缩减成101010……的形式,其中记录01的个数,对于每个1,我们只关心前面的0是否变成1,所以\(dp(i,j)\)记录在偶数位(即0)​时的状态j(0或1),根据0的状态可以计算出将组成当前1的最小值。

Codeforces Round #171 (Div. 2)的更多相关文章

  1. Codeforces Round #171 (Div. 2) B. Books (模拟队列)

    题意:有一组数,问子数组和最大不超过\(t\)的最多元素个数. 题解:用数组模拟队列,不断的往里面放,队列中的元素之和大于\(t\),就不断地从队头弹出直到满足条件,维护一个最大值即可. 代码: in ...

  2. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  3. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  4. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  5. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  6. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  7. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  8. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

  9. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

随机推荐

  1. 轮播图适应代码jQ

    (function(){ var i = 0; var time ; $('.page-size').html('1'); var obj = $('.xst-scroll>li'); var ...

  2. win8没有无线网络适配器问题

    1. 先关闭ssid : 命令提示符(管理员)输入 :netsh wlan set hostednetwork mde=disallow ssid 2. 再设置无线名称和密码 :netsh wlan ...

  3. C++软件添加dump调试打印日志

    #include <DbgHelp.h> #pragma comment(lib, "dbghelp.lib") LONG WINAPI TopLevelExcepti ...

  4. CALayer anchorPoint 锚点始终为(0,0)

    objc.io 学习 摘自原处修改 对层的属性详细了解可见这里 @interface ClockFace : CAShapeLayer@property (nonatomic, strong) NSD ...

  5. java发送http的get、post请求[转]

    原文链接:http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html package wzh.Http; import java.i ...

  6. 使用CSS3动画模拟实现小球自由落体效果

    使用纯CSS代码模拟实现小球自由落体效果: html代码如下: <div id="ballDiv"> <div id="ball">&l ...

  7. Remove openjdk in Ubuntu/Configure jdk and running adb in 64-bit Ubuntu

    sudo apt-get autoremove openjdk-7-jre sudo apt-get purge openjdk* java -version No openjdk available ...

  8. SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称

    1.查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: SELECT Name FR ...

  9. 使用TypeScript开发

    学习过一段时间CoffeeScript,然后再学习TypeScript,最后还是决定使用TypeScript开发. CofeeScript主要是给js添加一些语法糖,编写代码要快捷的多,少量的代码开发 ...

  10. git stash -u 添加新文件

    git 提交 有新文件执行    git stash -u ------ 如果已经执行git stash,会发现有UNtracked这个单词 说明新文件没有添加进去,此时 执行  git stash ...