Codeforces Round #110 (Div. 2)

C. Message

题意

  • 给两个长度不超过2000的字符串\(s,u\),仅由小写字母构成。
  • 找出\(s\)的一个子串\(t\),通过3种操作变换成字符串\(u\):
  1. 在首或尾添加一个字符;
  2. 删除首或尾的一个字符;
  3. 改变某个位置的字符。
  • 求最小的操作步数。

思路

  • 因为删除、插入的代价和修改的代价一样,显然找出和\(u\)长度一样的子串\(t\)可以求得最小代价。
  • 显然\(u\)可以只匹配\(s\)的一个前缀或后缀,可以通过在\(s\)首或尾添加非字母字符。

代码


D. Suspects

题意

  • 有\(N(N \le 10^5)\)个嫌疑人,其中一个是凶手。
  • 每个人会有一个回答(\(+a_i或-a_i\)),分别表示\(i\)认为\(a_i\)是凶手和不是凶手。
  • 已知全部回答中只有\(m\)个回答是真的,其余都是假的。
  • 对于每个回答,判定嫌疑人是否在说谎,输出\(Truth\)或\(Lie\),如果无法判断,则输出\(Not defined\)。

思路

  • 判断一个人是否是凶手:统计认为\(i\)是凶手的数量\(c[i]\),以及认为\(i\)不是凶手的数量\(nc[i]\),则为真的回答数=\[c[i]-nc[i]+\sum_{j=1}^{n}{nc[j]}\]
  • 假定\(i\)是凶手,则\([1, i)\)和\((i, n]\)的人不是凶手。维护\(L\)的最大值,\(R\)的最小值,使得\([1, L)\)和\((R, n]\)的人不是凶手。
  • 当\(a_i\)可能是凶手,也可能不是凶手时,就无法判断嫌疑人的回答是否撒谎。

代码


E. Cipher

题意

  • 给长度不超过100的字符串\(s\)。
  • 有两种操作,每次操作选择一个位置\(p(1 \le p \lt |s|)\):
  1. \(++s_p, --s_{p+1}\)
  2. \(--s_p, ++s_{p+1}\)
  • 经过若干次操作,变成了串\(t\),求不同的串\(t\)的数量。

思路

  • 认真想一下的话,可以发现串的总和是不变的,两种操作想当于把1扔到相邻的位置上。
  • 那么用\(f[i][j]\)表示i个字符组成和为j的方案数即可。

代码

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

  1. Codeforces Round #485 (Div. 2) D. Fair

    Codeforces Round #485 (Div. 2) D. Fair 题目连接: http://codeforces.com/contest/987/problem/D Description ...

  2. Codeforces Round #497 (Div. 2)

    Codeforces Round #497 (Div. 2) https://codeforces.com/contest/1008 A #include<bits/stdc++.h> u ...

  3. Codeforces Round #247 (Div. 2) ABC

    Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431  代码均已投放:https://github.com/illuz/Wa ...

  4. Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)

    A. Even Subset Sum Problem 题意 给出一串数,找到其中的一些数使得他们的和为偶数 题解 水题,找到一个偶数或者两个奇数就好了 代码 #include<iostream& ...

  5. Codeforces Round #620 (Div. 2)

    Codeforces Round #620 (Div. 2) A. Two Rabbits 题意 两只兔子相向而跳,一只一次跳距离a,另一只一次跳距离b,每次同时跳,问是否可能到同一位置 题解 每次跳 ...

  6. Codeforces Round #633 (Div. 2)

    Codeforces Round #633(Div.2) \(A.Filling\ Diamonds\) 答案就是构成的六边形数量+1 //#pragma GCC optimize("O3& ...

  7. Codeforces Round #713 (Div. 3)AB题

    Codeforces Round #713 (Div. 3) Editorial 记录一下自己写的前二题本人比较菜 A. Spy Detected! You are given an array a ...

  8. 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 ...

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

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

随机推荐

  1. K2 BPM医疗行业EMS解决方案

    EMS,即Event Management System,K2医疗行业EMS解决方案包括四方面的内容. 详情链接:http://www.k2software.cn/zh-hans/ems-soluti ...

  2. DotNetBar v12.2.0.7 Fully Cracked

    PS: 博客园的程序出现问题,导致我的博客不能访问(转到登录页),而我自己由于 Cookies 问题,一直可以访问,所以一直未发现该问题. 感谢冰河之刃告知,thx! 更新信息: http://www ...

  3. JAVA小记

    关于重写equals()方法和重写toString()方法,一般来说,Objects的默认子类都重写了这两个方法,直接利用就行了: 对于用户自定义的类,如果要用到这两方法,就必须在程序中重写.

  4. Memcache 详解

    这里收集了经常被问到的关于memcached的问题 一般的问题 什么是memcached? 从哪获得memcached? 怎么安装memcached? 哪些平台可以运行memcached? 什么情况下 ...

  5. 测试V模型

    一:测试V模型 RAD(Rap Application Development 快速引用开发)模型是软件开发过程中的一个重要模型,由于模型构图形似字母V,所以又称软件开发的V模型.他通过开发和测试同时 ...

  6. 详解x86、IA-32、IA-64等CPU系列

    x86架构起源于Intel公司在1978年推出的8086处理器.8086在1981年为IBM PC所选用,之后x86便成为了个人电脑的标准平台,成为历上最成功的CPU架构.8086是一款16位CPU, ...

  7. 使用树莓派和kali Linux打造便携式渗透套件

    在DIY前你需要: .树莓派Raspberry Pi Model B+型 或者 树莓派2代; .充电宝 X1; .USB WIFI网卡 X1; .8G SD卡 X1; .Raspberry PI触摸显 ...

  8. bootstrap菜单完美解决---原创

    由于bootstrap的各方优点,偶的“点金项目细化分包管理平台”决定采用它.但在使用中遇到了一些问题,比如菜单的问题,这个菜单是用的一个JQuery的一个效果,点击后,所点击的链接处的class要加 ...

  9. Python运算符与表达式

    Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符.成员运算符和身份运算符. 表达式是将不同类型的数据(常亮.变量.函数)用运算符按照一定得规则连接起来的式子. 算术运算符 ...

  10. Maven Build profiles

    They modify the POM at build time, and are meant to be used in complementary sets to give equivalent ...