2020.07.28【NOIP提高组】模拟

考试时状态不好,暴力不想打

结束前勉勉强强骗点分

已经不想说什么了······

\(T1\) 复制&粘贴2

逆推答案,枚举 \(k\),分类讨论

\(T2\) 愉快的logo设计

暴力计算贡献改为前缀和,把原串复制一片,把目标串分成连续的多块,记录开头结尾,根据前缀和算成功匹配的个数,取最大的即可

\(T3\) Flower 特难的题,见我另一篇,这里不展开叙述

\(T4\) 有趣的有趣的家庭菜园 还可以,见我另一篇,这里不展开叙述

前两题代码:

\(Code1\)

#include<cstdio>
#include<cstring>
using namespace std; const int N = 2e5 + 5;
int k , m , n , x[N] , y[N] , z[N];
char s[N]; int main()
{
freopen("copypaste.in" , "r" , stdin);
freopen("copypaste.out" , "w" , stdout);
scanf("%d%d%s%d" , &k , &m , s , &n);
for(register int i = 1; i <= n; i++) scanf("%d%d%d" , &x[i] , &y[i] , &z[i]);
int len = strlen(s);
for(register int i = len; i; i--) s[i] = s[i - 1];
for(register int i = 1; i <= k; i++)
{
int ans = i;
for(register int j = n; j; j--)
{
if (z[j] + y[j] - x[j] < ans) ans = ans - (y[j] - x[j]);
else if (ans > z[j]) ans = ans - z[j] + x[j];
}
printf("%c" , s[ans]);
}
}

\(Code2\)

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std; const int N = 5000005;
int k , ans = N , tot = 0 , num[5][N];
char s[N] , str[13][N]; struct node{
int l , r , s;
}fl[N]; int main()
{
freopen("logo.in" , "r" , stdin);
freopen("logo.out" , "w" , stdout);
scanf("%d%s" , &k , s); int p = 1;
str[0][0] = '0';
for(register int i = 1; i <= k; i++)
{
for(register int j = 1; j <= p; j++) str[i][j - 1] = 'J' , str[i][j + p - 1] = 'O' , str[i][j + p * 2 - 1] = 'I';
for(register int j = 3 * p; j < 4 * p; j++) str[i][j] = str[i - 1][j - 3 * p];
p *= 4;
}
for(register int i = 0; i < p - 1; i++)
{
int j = i;
fl[++tot].l = i;
fl[tot].s = str[k][i] == 'J' ? 1 : (str[k][i] == 'O' ? 2 : 3);
while (str[k][j] == str[k][j + 1]) j++;
fl[tot].r = j;
i = j;
} p = strlen(s);
for(register int i = p; i <= p * 2 - 1; i++) s[i] = s[i - p];
for(register int i = 0; i <= p * 2 - 1; i++)
{
int x = s[i] == 'J' ? 1 : (s[i] == 'O' ? 2 : 3);
if (i != 0)
{
num[1][i] = num[1][i - 1];
num[2][i] = num[2][i - 1];
num[3][i] = num[3][i - 1];
}
num[x][i]++;
} for(register int i = 0; i < p; i++)
{
int x = 0;
for(register int j = 1; j <= tot; j++)
x += fl[j].l + i != 0 ? num[fl[j].s][fl[j].r + i] - num[fl[j].s][fl[j].l + i - 1] : num[fl[j].s][fl[j].r + i];
ans = min(ans , p - x);
}
printf("%d" , ans - 1);
}

JZOJ 2020.07.28【NOIP提高组】模拟的更多相关文章

  1. 计蒜客 NOIP 提高组模拟竞赛第一试 补记

    计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...

  2. 2017.07.07【NOIP提高组】模拟赛B组

    Summary 因为某种无法抗拒的原因,今天没有打比赛,所以也就没有那种心态.今天的题目有状压DP和二分,这套题不难也不简单,适中,适合我这种渣渣来做.在改题时,发现了许多问题.我连欧拉函数的计算都记 ...

  3. 10-18 noip提高组模拟赛(codecomb)T1倍增[未填]

    T1只想到了找环,> <倍增的思想没有学过,所以看题解看得雨里雾里的(最近真的打算学一下! 题目出的挺好的,觉得noip极有可能出现T1T2T3,所以在此mark 刚开始T1以为是模拟,还 ...

  4. 10-18 noip提高组模拟赛(codecomb)T2贪心

    T2:找min:一直找最小的那个,直到a[i]-x+1小于0,就找次小的,以此类推: 求max,也是一样的,一直到最大的那个,直到次大的比之前最大的大,就找次大的: 这个模拟,可以用上priority ...

  5. HGOI20180815 (NOIP 提高组模拟赛 day2)

    Day 2 rank 11 100+35+30=165 本题是一道数论题,求ax+by=c的正整数对(x,y) x>=0并且y>=0 先说下gcd: 求a,b公约数gcd(a,b) 如gc ...

  6. 【洛谷】NOIP提高组模拟赛Day2【动态开节点/树状数组】【双头链表模拟】

    U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...

  7. 【洛谷】NOIP提高组模拟赛Day1【组合数学】【贪心+背包】【网络流判断是否满流以及流量方案】

    U41568 Agent1 题目背景 2018年11月17日,中国香港将会迎来一场XM大战,是世界各地的ENLIGHTENED与RESISTANCE开战的地点,某地 的ENLIGHTENED总部也想派 ...

  8. noip提高组模拟赛(QBXT)T2

    T2count题解 [ 问题描述]: 小 A 是一名热衷于优化各种算法的 OIER,有一天他给了你一个随机生成的 1~n 的排列, 并定 义区间[l,r]的价值为: \[ \huge C_{l,r}= ...

  9. [LUOGU] NOIP提高组模拟赛Day1

    题外话:以Ingress为题材出的比赛好评,绿军好评 T1 考虑枚举第\(i\)个人作为左边必选的一个人,那左边剩余\(i-1\)个人,选法就是\(2^{i-1}\),也就是可以任意选或不选,右侧剩余 ...

  10. l洛谷 NOIP提高组模拟赛 Day2

    传送门 ## T1 区间修改+单点查询.差分树状数组. #include<iostream> #include<cstdio> #include<cstring> ...

随机推荐

  1. PP视频(PPTV聚力)web接口分析

    前言 前几天我想看一个番剧, 正好搜索到了 PP视频,我才知道PP视频就是PPTV聚力,我想把番剧下载下来,结果发现视频竟然不是m3u8格式,而是多段mp4,所以简单的写了个脚本,可以在不登录的情况下 ...

  2. 数电第四周周结_by_yc

    数电第四周周结 1.赋值语句 基本概念: 连续赋值:   1.连续赋值不能出现在过程块(如initial,always)中间:   2.连续赋值语句之间是并行的:   3. 只能对wire型变量进行赋 ...

  3. redis集群之分片集群的原理和常用代理环境部署

    上篇文章刚刚介绍完redis的主从复制集群,但主从复制集群主要是为了解决redis集群的单点故障问题,通过整合哨兵能实现集群的高可用:但是却无法解决数据容量以及单节点的压力问题,所以本文继续介绍red ...

  4. supervisor安装与监控nginx

    安装参考:https://www.cnblogs.com/zgcblog/p/10192077.html https://www.cnblogs.com/yangbo981205/p/14928897 ...

  5. 第三十节:fillder抓取APP数据之小程序

    1.下载fillder ,fillder官网:https://www.telerik.com/fiddler 2.安装好后设置fillder: 工具->选项,打开设置面板.选择HTTPS选项卡. ...

  6. Boolean.getBoolean() 与 Boolean.parseBoolean()

    1. 问题回顾 当在不了解 Boolean 中的 getBoolean() 方法与 parseBoolean() 方法的区别时,在使用过程中就会出现不明所以的bug. 比如如下使用情况: // isA ...

  7. utf-8与utf8mb4与base64和md5

    utf-8与utf8mb4的区别 utf8--->utf-8,mysql字节的,两个字节表示一个字符--->生僻字,表示存不了 utf8mb4-->utf-8,最多4个字节表示一个字 ...

  8. mybatis 之定义拦截器 控制台SQL的打印

    类型 先说明Mybatis中可以被拦截的类型具体有以下四种: 1.Executor:拦截执行器的方法.2.ParameterHandler:拦截参数的处理.3.ResultHandler:拦截结果集的 ...

  9. 01.Java面试都问啥?

    大家好,我是王有志.好久不见,不过这次没有休假,而是搞了个"大"工程,花了点时间自学Python,然后写了"玩具爬虫",爬某准网的面经数据,为来年的" ...

  10. vivo 游戏中心低代码平台的提效秘诀

    作者:vivo 互联网服务器团队- Chen Wenyang 本文根据陈文洋老师在"2022 vivo开发者大会"现场演讲内容整理而成.公众号回复[2022 VDC]获取互联网技术 ...