打了ks好久都没有更新

诶,自己的粗心真的是没救了,A题大数据都能错

A

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <algorithm>
#include <functional>
#include <assert.h>
#include <iomanip>
using namespace std;
// const int N = 7005;
// const int M = 2e5 + 5;
const int INF = 0x3f3f3f3f;
const int MOD = 1000000007;
typedef long long ll; char seq[105][55];
int tot, Root;
int nx[10005][2];
int tag[10005];
int newNode() {
nx[tot][0] = nx[tot][1] = -1; tag[tot] = 0;
return tot ++;
}
int N, P; void Insert(char* s) {
int len = strlen(s);
int root = Root;
for(int i = 0; i < len; ++i) {
int id = s[i] == 'R';
if(nx[root][id] == -1) {
nx[root][id] = newNode();
}
root = nx[root][id];
}
tag[root] ++;
} ll dfs(int rt, int deep) {
if(tag[rt]) return 1ll<<(N - deep);
ll ans = 0;
if(nx[rt][0] != -1) ans += dfs(nx[rt][0], deep + 1);
if(nx[rt][1] != -1) ans += dfs(nx[rt][1], deep + 1);
return ans;
}
int main() {
freopen("A-large-practice2.in", "r", stdin);
freopen("A-large-practice2.out", "w", stdout);
int T;
scanf("%d", &T);
for(int _ = 1; _ <= T; ++_) {
tot = 0;
Root = newNode();
scanf("%d %d", &N, &P);
for(int i = 0; i < P; ++i) {
scanf("%s", seq[i]);
Insert(seq[i]);
}
printf("Case #%d: %lld\n", _, (1ll<<N) - dfs(Root, 0)); }
return 0;
}

B

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <algorithm>
#include <functional>
#include <assert.h>
#include <iomanip>
using namespace std;
const int M = 5e6 + 5;
const int INF = 0x3f3f3f3f;
const int MOD = 1000000007;
typedef long long ll; char seq[M];
int main() {
freopen("B-large.in", "r", stdin);
freopen("B-large.out", "w", stdout);
int T;
scanf("%d", &T);
for(int _ = 1; _ <= T; ++_) {
int n;
scanf("%d %s", &n, seq + 1);
int ans = 0; int tmp = 0;
for(int i = 1; i <= (n+1)/2; ++i) {
tmp += seq[i] - '0';
}
ans = max(ans, tmp);
for(int i = (n+1)/2 + 1, j = 1; i <= n; ++i, ++j) {
tmp -= seq[j] - '0';
tmp += seq[i] - '0';
ans = max(ans, tmp);
} printf("Case #%d: %d\n", _, ans); }
return 0;
}

C容斥原理

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <algorithm>
#include <functional>
#include <assert.h>
#include <iomanip>
using namespace std;
// const int N = 7005;
const int M = 2e5 + 5;
const int INF = 0x3f3f3f3f;
const int MOD = 1000000007;
typedef long long ll; ll Mul[M];
ll Pow(ll x, ll y) {
ll ans = 1;
while(y) {
if(y & 1) ans = 1ll * ans * x % MOD;
x = 1ll * x * x % MOD;
y >>= 1;
}
return ans;
} ll C(int x, int y) {
if(y == 0) return 1;
if(x == y) return 1;
return 1ll* Mul[x] * Pow(Mul[y] * Mul[x - y] % MOD, MOD - 2) % MOD;
}
int main() {
freopen("C-small-attempt0.in", "r", stdin);
freopen("C-small-attempt0.out2", "w", stdout);
int T;
scanf("%d", &T);
Mul[1] = 1;
Mul[0] = 1;
for(int i = 2; i < M; ++i) {
Mul[i] = Mul[i-1] * i % MOD;
}
for(int _ = 1; _ <= T; ++_) {
int n, m;
scanf("%d %d", &n, &m);
ll ans = Mul[2*n];
int init = 2*n; ll mul2 = 1;
for(int i = 1; i <= m; ++i) {
init --;
mul2 = mul2 * 2 % MOD;
ll tmp = mul2 * Mul[init] % MOD * C(m, i) % MOD;
ans = (ans + ( (i % 2) ? -tmp : tmp) + MOD) % MOD;
} printf("Case #%d: %lld\n", _, ans);
}
return 0;
}

Kickstart Round H 2018的更多相关文章

  1. Let Me Count The Ways(Kickstart Round H 2018)

    题目链接:https://code.google.com/codejam/contest/3324486/dashboard#s=p2 题目: 思路: 代码实现如下: #include <set ...

  2. Kickstart Round H 2019 Problem B. Diagonal Puzzle

    有史以来打得最差的一次kickstart竟然发生在winter camp出结果前的最后一次ks = = 感觉自己的winter camp要凉了 究其原因,无非自己太眼高手低,好好做B, C的小数据,也 ...

  3. Kickstart Round G 2018

    第一次打codejam....惨的一比,才A1.5题,感觉自己最近状态渣到姥姥家了,赶紧练练 A 模拟,注意0的问题 #include <iostream> #include <cs ...

  4. Google Kickstart Round E 2018 B. Milk Tea

    太蠢了,,,因为初始化大数据没过,丢了10分,纪念一下这个错误 大概思路:先求出让损失值最小的排列,由已生成的这些排列,通过更改某一个位置的值,生成下一个最优解,迭代最多生成m+1个最优解即可,遍历求 ...

  5. 2019 google kickstart round A

    第一题: n个人,每个人有一个对应的技能值s,现在要从n个人中选出p个人,使得他们的技能值相同. 显然,如果存在p个人的技能值是相同的,输出0就可以了.如果不存在,就要找出p个人,对他们进行训练,治他 ...

  6. google Kickstart Round F 2017 四道题题解

    Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...

  7. google Kickstart Round G 2017 三道题题解

    A题:给定A,N,P,计算A的N!次幂对P取模的结果. 数据范围: T次测试,1 ≤ T ≤ 100 1<=A,N,P<=105 快速幂一下就好了.O(nlogn). AC代码: #inc ...

  8. 【贪心】Google Code Jam Round 1A 2018 Waffle Choppers

    题意:给你一个矩阵,有些点是黑的,让你横切h刀,纵切v刀,问你是否能让切出的所有子矩阵的黑点数量相等. 设黑点总数为sum,sum必须能整除(h+1),进而sum/(h+1)必须能整除(v+1). 先 ...

  9. Kickstart Round D 2017 problem A sightseeing 一道DP

    这是现场完整做出来的唯一一道题Orz..而且还调了很久的bug.还是太弱了. Problem When you travel, you like to spend time sightseeing i ...

随机推荐

  1. HTML5新增和废弃的标签

    一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定 ...

  2. python第十三课——嵌套循环

    2.嵌套循环: 概念:循环中再定义循环,称为嵌套循环: [注意]嵌套循环可能有多层,但是一般我们实际开发最多两层就可以搞定了(99%的情况) 格式: 1).while中套while常用 2).whil ...

  3. 1875: [SDOI2009]HH去散步

    Time Limit: 20 Sec Memory Limit: 64 MB Submit: 2333 Solved: 1204 [Submit][Status][Discuss] Descripti ...

  4. nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案

    node本身并不支持es6语法,我们通常在vue项目中使用es6语法,是因为,我们使用babel做过处理, 为了让项目支持es6语法,我们必须同时使用babel 去启动我们的程序,所以再启动程序中加 ...

  5. mac下git安装和使用

    1.下载git客户端,下载地址为:https://git-scm.com/download/mac 2.打开安装包,可以看到此时的界面为:   我们需要把.pkg的安装包安装到系统当中.我双击了安装包 ...

  6. 简单部署iRedMail-0.9.8 - 邮件服务器架构和错误代码

    1.去官网下载最新稳定版软件 https://www.iredmail.com/index.html 2.https://docs.iredmail.org/install.iredmail.on.r ...

  7. UCOS时钟节拍的讲究

    其实这个值取适中即可,100,200都行,看你的片子是什么,Cortex-M3的片子取200较合适这个值太小,系统调度周期较长,各个任务之间切换较慢,适时性降低,而太大了,中断周期与调试周期接近了,那 ...

  8. 转载:【架构师之路】依赖注入原理---IoC框架

    原文地址:http://www.cnblogs.com/jhli/p/6019895.html 1 IoC理论的背景     我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象 ...

  9. 微服务系列实践 .NET CORE

    从事这个行业转眼已经6年了,从当初刚毕业的在北京朝八晚十,从二环到五环,仍每天精力充沛的小愤青:再到深圳一点一滴的辛勤在软件行业的耕种,从当初单体应用架构到现在微服务架构的经历,回想起来自己的收获倒是 ...

  10. python爬虫-execjs使用

    python爬虫-execjs使用 ecexjs的作用 通过python代码去执行JavaScript代码的库 execjs的安装 pip install PyExecJS execjs使用之前,得先 ...