A题

模拟

 T = int(input())
while T:
T -= 1
s = raw_input()
n = len(s)
res, pre = 0, 0
for i in xrange(1, n):
if (s[i] == s[pre]):
res += 1
else:
pre = i
print res

B题

模拟

 n, k = map(int, raw_input().split())
s = raw_input() res = []
ans = 0
for i in xrange(n):
if i >= k:
ans ^= int(res[i-k])
tmp = ans ^ int(s[i])
res.append(tmp)
ans ^= tmp
print ''.join(map(str, res))

C题

题目大意:给出k种高度不同的积木,每种积木可以使用无数次,问使用这些积木拼成高度为N的塔的方法数对1e9 + 7的模是多少。

另F(x)为拼接成高度为x的方法数,则F(x) = sigma(F(i)) (1 <= i <= k && high[i] <= x)

可先处理出1~15的F函数的值,当N>15时,使用矩阵加速即可。

 #include <cmath>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; typedef long long LL;
const int MOD = 1e9 + ;
#define rep(i, n) for (int i = (1); i <= (n); i++)
LL N, K, A[], f[];
struct Matrix {
LL a[][];
Matrix() {memset(a, , sizeof(a));} Matrix operator * (const Matrix &x) const {
Matrix c;
rep (i, ) rep (k, ) rep (j, ) c.a[i][j] = (c.a[i][j] + x.a[k][j] * a[i][k]) % MOD;
return c;
}
}; Matrix pow_mod(Matrix a, LL b) {
if (b < ) return a;
Matrix res;
rep (i, K) res.a[i][i] = ;
while (b > ) {
if (b & ) res = res * a;
a = a * a;
b >>= ;
}
return res;
} int main() {
ios::sync_with_stdio(false);
cin >> N >> K;
rep (i, K) cin >> A[i]; sort(A + , A + K + );
f[] = ;
rep (i, ) rep (j, K) if (i >= A[j]) f[i] = (f[i] + f[i - A[j]]) % MOD;
rep (i, ) cerr << f[i] << endl;
if (N <= ) {
cout << f[N] * % MOD << endl;
return ;
} Matrix a; rep (i, ) a.a[i][i-] = ;
a.a[][] = ; rep (i, K) a.a[][A[i]] = ;
Matrix res = pow_mod(a, N - );
LL ans = ;
rep (i, ) ans = (ans + res.a[][i] * f[ - i]) % MOD;
ans = (ans * ) % MOD;
cout << ans << endl;
return ;
}

D题

题目大意:给出N个点,每个点有两个值V和P。要求从1开始走到N,在每个点选择有两种选择,要么将总得分加上V,要么还可以向前走P步。

目标是使得走到N时的总得分最大。题目保证至少存在一种解。

这题DP方程很明显,从后往前进行dp, dp[i] = min(dp[i], dp[j]), i < j <= i + P[i];

所以对于每个点,要快速的求出dp[i]~dp[i + P[i]] 的最小值。

直到做这个题我才知道原来BIT也可以用来求最值,原来0base和1base是这个含义。。(数组下标从0/1开始)

原来BIT数组下标可以从0开始,貌似被称为0base邪教,如:for (int x = i; x >= 0; x -= ~x & x + 1) {}

这里很巧妙的利用了~x = - x + 1,即~x = -(x + 1),还有运算符的优先级。摘自叉姐代码。

 #include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std; #define rep(i, n) for (int i = (1); i <= (n); i++)
typedef long long LL;
const int MAX_N = ;
const LL INF = (LL)1e18;
int V[MAX_N], P[MAX_N];
LL tree[MAX_N];
int N; int main() {
scanf("%d", &N);
for (int i = ; i <= N; i++) scanf("%d %d", V+i, P+i); fill(tree+, tree+N+, -INF);
LL ans = tree[N] = V[N], sum = ;
for (int i = N-; i >= ; i--) {
ans = -INF;
for (int x = min(i+P[i], N); x > ; x -= x&-x)
ans = max(ans, tree[x]);
if (ans > -INF) {
for (int x = i; x <= N; x += x&-x)
tree[x] = max(tree[x], ans - V[i]);
} ans += sum;
sum += V[i];
}
printf("%lld\n", ans); return ;
}

E题

Weekly 10 小结的更多相关文章

  1. CI Weekly #10 | 2017 DevOps 趋势预测

    2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...

  2. 学过 C++ 的你,不得不知的这 10 条细节!

    每日一句英语学习,每天进步一点点: “Action may not always bring happiness; but there is no happiness without action.” ...

  3. ASP.NET MVC 5 05 - 视图

    PS: 唉,这篇随笔国庆(2015年)放假前几天开始的,放完假回来正好又赶上年底,公司各种破事儿. 这尼玛都写跨年了都,真服了.(=_=#) 好几次不想写了都. 可是又不想浪费这么多,狠不下心删除.没 ...

  4. SQList

    SQLite顾名思议是以 SQL为基础的数据库软件,SQL是一套强大的数据库语言,主要概念是由「数据库」.「资料表」(table).「查询指令」(queries)等单元组成的「关联性数据库」(进一步的 ...

  5. Python黑帽编程2.2 数值类型

    Python黑帽编程2.2  数值类型 数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型.长整型.布尔.双精度浮点.十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区 ...

  6. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  7. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

    [连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1 ...

  8. 【模块化编程】理解requireJS-实现一个简单的模块加载器

    在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...

  9. 软件工程导论-目录-K-T+RJ大

    目录 10 第1章 软件工程学概述/1 19 1.1 软件危机/1 19 1.1.1 软件危机的介绍/1 19 1.1.2 产生软件危机的原因/3 21 1.1.3 消除软件危机的途径/4 22 1. ...

随机推荐

  1. 高速网络下的http协议优化

    http协议是基于TCP协议,具备TCP协议的所有功能.但是与一般TCP的长连接不同的是http协议往往连接时间比较短,一个请求一个响应了事.但是总所周知,TCP协议除了具备可靠的传输以外,还有拥塞控 ...

  2. SpringData_02_JPQL查询、SQL查询和方法命名规则查询

    1.使用JPQL的方式查询 JPQL查询:Hibernate提供的是HQL查询,而JPA提供的是JPQL查询语言 使用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于 ...

  3. sql.xml 循环插入与修改写法

    // 插入 (交互一次数据库) <insert id="insertClient"> insert into m_linknodeclient (LinkClientI ...

  4. 2019/10/17 CSP模拟 总结

    T1 补票 Ticket 没什么好说的,不讲了 T2 删数字 Number 很后悔的是其实考场上不仅想出了正解的方程,甚至连优化都想到了,却因为码力不足只打了\(O(n^2)\)暴力,甚至还因为细节挂 ...

  5. MS-coco数据集下载及使用(转)

    先做个标记,改天研究下. 几个链接: MS coco数据集介绍及下载 Microsoft COCO 数据集 COCO Dataset 数据特点 COCO 数据集的使用

  6. PAT甲级——A1091 Acute Stroke【30】

    One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. Given the re ...

  7. 《DSP using MATLAB》Problem 8.28

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  8. 第二周——1.项目中MySQL版本问题

    1.版本升级 经组长推荐,本地安装的是mysql-8.0.11,而主项目用的还是版本5.6, 因此需要升级版本. 首先,更新驱动:下载mysql-connector-java-8.0.11,将E:\P ...

  9. java笔试之取近似值

    写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. package test; import java.util.*; import ...

  10. Python学习之--数据基础

    对于Python来说,一切皆对象.包括数字.字符串.列表等,对象是由类来创建的,那对象的一个优点就是可以使用其创建类中所定义的各种方法. 查看对象/方法 1)可以在命令行中直接查看,如下: >& ...