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. Linux禁止摄像头自动曝光(手动调节曝光)

    前言 很多摄像头具有自动曝光的功能,例如在较暗的调节下,提高曝光率,在较亮的调节下降低曝光.下面简单介绍在linux平台俩种方式来修改自动曝光. 软件调节(图形化界面) 安装qv4l2 sudo ap ...

  2. Go 的windows安装与环境配置

    1.请前往go的官网下载安装包:https://golang.org/dl/ 安装你如果C盘够大比较土豪就一路next即可,在这里小编穷就安装到了D:\Program Files\Go 2.环境变量配 ...

  3. xml中出现< >&等特殊字符如何存储

    特殊字符用下面对应得符号代替. < <= > >= & ' " < <= > >= & &apos; "

  4. VMware宿主机访问虚拟机的Web服务

    VMware宿主机访问虚拟机的Web服务,主要就是宿主机可以通过IP能够访问到虚拟机. 可以尝试使用以下步骤. 1.关闭虚拟机,把网络连接方式修改成桥接方式. 2.打开虚拟机后,把虚拟机的防火墙关闭. ...

  5. Datawhale组队学习_Task04:详读西瓜书+南瓜书第5章

    第5章 神经网络 5.1 神经元模型 基本定义:神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应. M-P神经元模型:   在此模型 ...

  6. WeakHashMap 和 HashMap 的区别是什么,何时使用?

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. 在之前的文章里,我们聊到了 Java 标准库中 HashMap 与 LinkedH ...

  7. TransmittableThreadLocal和@Async优雅的记录操作日志

    此文主要讲解: 如何实现操作记录 如何将TransmittableThreadLocal和@Async搭配使用 TransmittableThreadLocal阿里的一个开源组件,为了在使用线程池等会 ...

  8. MIsc writeup

    1. 杂项 图片里面有什么 ,附件为一张图片 通过Binwalk查看发现有压缩包,通过foremost分离一下. 打开输出文件,发现里面有两个图片. 00000000.png是原图,00000722. ...

  9. xxl-job定时调度任务Java代码分析

    简介 用xxl-job做后台任务管理, 主要是快速解决定时任务的HA问题, 项目代码量不大, 功能精简, 没有特殊依赖. 因为产品中用到了这个项目, 上午花了点时间研究了一下运行机制. 把看到的记一下 ...

  10. 【转载】EXCEL VBA 同时选择多个工作表的方法

    如果要用VBA同时选择多个工作表,可以利用数组或设置"Select"方法的参数为"False"来扩展所选择的内容,如下面的一些代码:   1.用工作表名称:   ...