估分:25+0+60=85

实际:25+0+60=85

T1:

  就只会25的暴力

  分治,到一个区间[l,r],cnt[i]表示i这个颜色在区间内的出现次数,从两头同时扫描,扫描到第一个cnt[i]小于f[r-l+1]后往下走,先继续搜较大的区间,再搜索小区间,返回时把cnt清空,因为已经搜过了就没必要搜了

 1 #include<cstdio>
2 #include<cstring>
3 #include<iostream>
4 #include<algorithm>
5 using namespace std;
6
7 const int N = 1000010;
8
9 int n;
10 int c[N], f[N], cnt[N];
11
12 int ans;
13
14 void dfs(int l, int r)
15 {
16 for (int i = l, j = r; i <= j; i++, j--)
17 {
18 if (cnt[c[i]] < f[r - l + 1])
19 {
20 for (int k = l; k <= i; k++) cnt[c[k]]--;
21 dfs(i + 1, r);
22 for (int k = l; k < i; k++) cnt[c[k]]++;
23 dfs(l, i - 1);
24 return;
25 }
26 if (cnt[c[j]] < f[r - l + 1])
27 {
28 for (int k = r; k >= j; k--) cnt[c[k]]--;
29 dfs(l, j - 1);
30 for (int k = r; k > j; k--) cnt[c[k]]++;
31 dfs(j + 1, r);
32 return;
33 }
34 }
35
36 ans = max(ans, r - l + 1);
37 for (int i = l; i <= r; i++) cnt[c[i]]--;
38 }
39
40 int main()
41 {
42 scanf("%d", &n);
43 for (int i = 1; i <= n; i++) scanf("%d", &c[i]), cnt[c[i]]++;
44 for (int i = 1; i <= n; i++) scanf("%d", &f[i]);
45 dfs(1, n);
46 printf("%d", ans);
47 }

T2:

  可能有个10分的暴力,但没写完

T3:

  因为有一个k的宽容,经过简单的推理过程就能得出答案至少为n-1,60分就到手了,若n=9,构造就这样

  0 1 2 3 4 5 6 7 8

  8 7 6 5 4 2 1 0 3

  a正序,b逆序,把b[n/2+1]挪到最后

  正解:

  当n=4k+2或n=4k+3时就是上面的构造方法,不存在答案为n的构造,证明如下:
  

  当n=4k时,设构造出的排序为a,我们把ai和i连边,就会得到下面这样的环:

  

  当n=4k+1时,可以得到这样的环:

  

  可以看出ai,和bi的差值都是不同的

 1 #include<cstdio>
2 #include<cstring>
3 #include<iostream>
4 #include<algorithm>
5 using namespace std;
6
7 const int N = 1000010;
8
9 int n, k;
10 int t1, t2, p[N], sz;
11 char c[10];
12
13 void write(int x)
14 {
15 if (x < 0) putchar('-'), x = -x;
16 if (x / 10) write(x / 10);
17 putchar(x % 10 + '0');
18 }
19
20 int main()
21 {
22 scanf("%d%d", &n, &k);
23 t1 = 1, t2 = n;
24
25 if ((n & 3) > 1)
26 {
27 for (int i = 1; i <= (n >> 1); ++i)
28 {
29 p[t1] = t2;
30 p[t2] = t1 + 1;
31 t1++, t2--;
32 }
33 p[t1] = 1;
34 }
35 else
36 {
37 for (int i = 1; t1 < t2; ++i)
38 {
39 p[t1] = t2;
40 if (t1 == (n >> 2)) p[t1 + 1] = t1 + 1, ++t1;
41 p[t2] = t1 + 1, ++t1, --t2;
42 }
43 p[t1] = 1;
44 }
45 for (int i = 1; i <= n; ++i) write(i - 1), putchar(' ');
46 puts("");
47 for (int i = 1; i <= n; ++i) write(p[i] - 1), putchar(' ');
48 }

正睿十一A班模拟赛day1的更多相关文章

  1. CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

    A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...

  2. CH Round #54 - Streaming #5 (NOIP模拟赛Day1)

    A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...

  3. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  4. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  5. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  6. 10.17(山东多校联合模拟赛 day1)

    山东多校联合模拟赛 day1 题不难 rect [问题描述] 给出圆周上的 N 个点, 请你计算出以这些点中的任意四个为四个角,能构成多少个矩形. 点的坐标是这样描述的, 给定一个数组 v[1..N] ...

  7. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  8. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  9. HGOI2010816 (NOIP 提高组模拟赛 day1)

    Day1 210pts(含T1莫名的-10pts和T3莫名的-30pts) 100+70+40=210 rank 29 这道题第一眼看是字符串匹配问题什么KMP啊,又想KMP不会做啊,那就RK Has ...

随机推荐

  1. python IDE(集成开发环境)——PyCharm的安装

    选择PyCharm的原因: 1.很多大佬都推荐,说适合实战操作项目 2.另外是界面可视化不错,颜色很舒服(体验完之后的感觉) 3.PyCharm本身有很多操作快捷键很方便(后续可以记下来常用的,方便自 ...

  2. TinkPHP框架开发的CRMEB小程序商城v4.0二次开发集成支付宝支付

    前言 大家都知道支付宝支付和微信支付宝都只能局限在自己的平台,微信内支付宝支付是根本就不能使用,即使是公众号支付也需要跳转到外部浏览器才可以唤起支付宝支付,并且QQ浏览器唤起支付宝支付还是问题很多,所 ...

  3. 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  4. pybind11: C++ 工程如何提供 Python 接口

    C/C++ 工程提供 Python 接口,有利于融合进 Python 的生态.现在 Python 在应用层,有其得天独厚的优势.尤其因为人工智能和大数据的推波助澜, Python 现在以及未来,将长期 ...

  5. 【平台开发】— 4.mysql建库建表

    本想着把前端脚手架run起来了,然后就可以借着登录来捋一下前后端交互的过程.但是后端导入JPA的时候就发现了,还没有数据库. 既然是本着学习的目的,那咱也不想只在后端写死返回的数据,要做就做全套. 一 ...

  6. 面试【JAVA基础】多线程

    本次整理的内容如下: 1.进程与线程的区别 进程是一个可执行的程序,是系统资源分配的基本单位:线程是进程内相对独立的可执行单元,是操作系统进行任务调度的基本单位. 2.进程间的通信方式 2.1.操作系 ...

  7. [BUUOJ记录] [BJDCTF2020]EasySearch

    前面的突破点考察swp泄露以及md5截断认证,最后一步考察ssi注入 进入题目是一个登陆页面什么提示都没有,工具扫了一下发现swp泄露,得到登录验证页面的源码: <?php ob_start() ...

  8. 详解 LeetCode_007_整数反转(Java 实现)

    目录 LeetCode_007_整数反转 题目描述 总体分析 解决方案 小结 LeetCode_007_整数反转 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示 ...

  9. 阿里云openssl升级,实现nginx主动推送,nginx主动推送能够有效减少不必要的报文传输,减少用户请求次数,以达到更快访问速度

    现有版本检查 [root@node3 ~]# openssl version               #这个版本是无法支持http2.0主动推送功能.需要升级为2019版本. OpenSSL 1. ...

  10. 【转】PHP面试总结

    文章出处:https://www.cnblogs.com/codetao/p/6418127.html