题解 CF17201 A~D2
A
先约分,显然答案必然是 0 或 1 或 2
相等为 0,主要考虑 1 或 2 的情况。
假设 \(a>b\),令 \(c = a/b\),如果 \(c\) 为整数答案为 \(1\),否则为 \(2\)。
特别的要特判 0。
//SIXIANG
#include <iostream>
#define MAXN 100000
#define int long long
#define QWQ cout << "QWQ" << endl;
using namespace std;
int gcd(int n, int m) {
if(!m) return n;
else return gcd(m, n % m);
}
bool judge(int a, int b, int c, int d) {
if(a * d > b * c) return 1;
else return 0;
}
signed main() {
int T; cin >> T;
while(T--) {
int a, b, c, d;
cin >> a >> b >> c >> d;
int d1 = gcd(a, b), d2 = gcd(c, d);
a /= d1, b /= d1, c /= d2, d /= d2;
if(a == c && b == d) {
cout << 0 << endl;
continue;
}
if((a == 0 || c == 0) && (a != c)) {
cout << 1 << endl;
continue;
}
if(!judge(a, b, c, d)) swap(a, c), swap(b, d);
if(a * d % (c * b) != 0) cout << 2 << endl;
else cout << 1 << endl;
}
}
B
通过大眼观察法,我们可以得到是最大值+次大值-最小值-次小值。
证明应该显然罢,懒得写了 QAQ
//SIXIANG
#include <iostream>
#include <algorithm>
#define MAXN 100000
#define QWQ cout << "QWQ" << endl;
using namespace std;
int a[MAXN + 10];
int main() {
int T, n; cin >> T;
while(T--) {
cin >> n;
for(int p = 1; p <= n; p++) cin >> a[p];
sort(a + 1, a + n + 1);
cout << a[n] + a[n - 1] - a[1] - a[2] << endl;
}
}
我知道这是幼儿园小朋友的 nt 写法,但是我就是幼儿园小朋友~
C
一点一点来
除了第一次,我们每次肯定只会 ban 掉一个 1。
我们第一次枚举一下每个 L 里面最小的 1 数量,然后 1 数量减去这个加一即可。
//SIXIANG
#include <iostream>
#define MAXN 100000
#define QWQ cout << "QWQ" << endl;
using namespace std;
char ch[1145][1145];
int main() {
int T, n, m; cin >> T;
while(T--) {
cin >> n >> m;
int cnt = 0, minn = 0x7f7f7f7f;
for(int p = 1; p <= n; p++) {
for(int i = 1; i <= m; i++) {
cin >> ch[p][i];
if(ch[p][i] == '1') cnt++;
}
}
for(int p = 1; p <= n; p++) {
for(int i = 1; i <= m; i++) {
int a = (ch[p][i + 1] == '1'), b = (ch[p + 1][i] == '1');
int c = (ch[p - 1][i] == '1'), d = (ch[p][i - 1] == '1');
int e = (ch[p][i] == '1');
if(p > 1 && i > 1 && e + c + d) minn = min(minn, e + c + d);
if(p > 1 && i < m && e + c + a) minn = min(minn, e + c + a);
if(p < n && i > 1 && e + b + d) minn = min(minn, e + b + d);
if(p < n && i < m && e + b + a) minn = min(minn, e + b + a);
}
}
if(!cnt) cout << cnt << endl;
else cout << cnt - minn + 1 << endl;
}
}
D1
\(f_i\) 为以 \(i\) 结尾的最长 \(b\)。
则显然有 \(f_i = \max\{f_j\} + 1(a_j \operatorname{xor} i < a_i \operatorname{xor} j, j < i)\)。
下面看了题解,因为真的没有见过这个东西的处理 QAQ
首先有 \(\begin{cases}i - a_j\le a_j \operatorname{xor} i\\ a_i\operatorname{xor} j \le a_i + j\end{cases}\)
故 \(i - a_j \le a_i + j\),故 \(i - j\le a_i + a_j\),即 \(i - j\le 400\)
这个是真的厉害,之前没有见过这样的操作 QAQ
//SIXIANG
#include <iostream>
#include <cstring>
#define MAXN 300000
#define QWQ cout << "QWQ" << endl;
using namespace std;
int a[MAXN + 10], f[MAXN + 10];
int main() {
int T;
cin >> T;
while(T--) {
int n, maxn = 0; cin >> n;
for(int p = 1; p <= n; p++) f[p] = 1;
for(int p = 1; p <= n; p++) cin >> a[p];
for(int p = 1; p <= n; p++) {
for(int j = max(p - 400, 1); j < p; j++) {
if((a[j] ^ (p - 1)) < (a[p] ^ (j - 1)))
f[p] = max(f[p], f[j] + 1);
}
maxn = max(maxn, f[p]);
}
cout << maxn << endl;
}
}
D2
01trie,懒得打,待填坑
题解 CF17201 A~D2的更多相关文章
- CF 1130A 1130B 1130C1129A1 1129A2 1129B(Round542A B C D1 D2 E)题解
A : Be Positive 题目地址:https://codeforces.com/problemset/problem/1130/A 题解:让你求是否满足一个d使得数列长为n的a数组的每个数除以 ...
- 【题解】 2月19日 厦门双十中学NOIP2014模拟D2 T1 采药人的切题规则
Made by 退役的OIer 第一次写博客,写得不好 or 不清楚的可以 在下方留言,我会尽量改进的! 好啦~~~回到正题,题面见传送门 [问题描述] 采药人最近在认真切题,但回旋的转盘时常在眼前浮 ...
- Codeforces Round #738 (Div. 2) D2题解
D2. Mocha and Diana (Hard Version) 至于D1,由于范围是1000,我们直接枚举所有的边,看看能不能加上去就行,复杂度是\(O(n^2logn)\).至于\(n\)到了 ...
- 1206 雅礼集训D2题解
A \(two\) \(1.1\) \(Description\) 你有两棵有根树,每棵各有 n 个顶点.让我们用整数 1 到 n 给每棵树的顶点编 号.两棵树的根都是顶点 1.第一棵树的边都都是蓝色 ...
- 【题解】 2月19日 厦门双十中学NOIP2014模拟D2 T2 采药人接水果
[问题描述] 采药人虽然 AFO(SU),但他在闲暇的时候还是可以玩一玩接水果(cat)的.但他渐渐发现 cat 好像有点太弱智.于是他不想浪费他的智商,于是决定写一个程序帮他玩. cat 是这样玩的 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- [Noip2016]蚯蚓 D2 T2 队列
[Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...
- [NOIP2016]愤怒的小鸟 D2 T3 状压DP
[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...
- [题解]noip2016普及组题解和心得
[前言] 感觉稍微有些滑稽吧,毕竟每次练的题都是提高组难度的,结果最后的主要任务是普及组抱一个一等奖回来.至于我的分数嘛..还是在你看完题解后写在[后记]里面.废话不多说,开始题解. 第一题可以说的内 ...
- [NOIP2015]运输计划 D2 T3 LCA+二分答案+差分数组
[NOIP2015]运输计划 D2 T3 Description 公元2044年,人类进入了宇宙纪元. L国有n个星球,还有n-1条双向航道,每条航道建立在两个星球之间,这n-1条航道连通了L国的所有 ...
随机推荐
- jquery 简单分页插件jQuerypage
昨天项目手机端要用到table的分页,考虑到手机端界面小,系统数据不多,在没考虑大批量数据处理的前提前就下载了这个插件,简单. 展示数据datas为json格式. <!DOCTYPE html& ...
- AIBOX视频边缘计算终端,助力识别人员违规行为!
目前,制造业工厂工作区布局分散,生产安全质量控制难度较大.人员擅自离岗.玩手机.区域入侵.吸烟.未穿反光衣.异物占位等违法行为不能及时控制,安全风险十分巨大.如果手动检查或通过人眼检查监控录像,不仅产 ...
- Java多线程详解(通俗易懂)
一.线程简介 1. 什么是进程? 电脑中会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的.例如图中的微信.酷狗音乐.电脑管家等等. 2. 什么是线程? 进程想要执行任务就需 ...
- jmeter websocket 接口测试环境准备
1.下载jdk并进行安装配置环境 2.下载jmeter,解压可直接使用,无需安装 3.进入下载地址下载plugins-manager.jar 插件 4.将下载好plugins-manager.jar ...
- 微信小程序地区和location_id对应关系
点击查看代码 location_list = [ {'location_id': '101010100', 'location_name': ['北京', '北京', '北京']}, {'locati ...
- 红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02
Ruby是强类型动态语言,即Ruby中一旦某一个对象被定义类型,如果不通过强制转换操作,那么它永远就是该数据类型,并且只有在Ruby解释器运行时才会检测对象数据类型,它的一切皆为对象(包括 nil 值 ...
- 利用WordPress搭建属于自己的网站
怎么用WordPress给自己搭建了一个网站?可能很多人都想拥有属于自己的网站,这篇文章就找你怎么利用WordPress搭建属于自己的网站.如果你也正好有搭建个人网站的想法,那么本文会给你一个参考,我 ...
- Python图像处理丨详解图像去雾处理方法
摘要:本文主要讲解ACE去雾算法.暗通道先验去雾算法以及雾化生成算法. 本文分享自华为云社区<[Python图像处理] 三十.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)丨[拜托了 ...
- 【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI
前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求.那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAGNI原 ...
- cs231n学习笔记——lecture6 Training Neural Networks
该博客主要用于个人学习记录,部分内容参考自:[基础]斯坦福cs231n课程视频笔记(三) 训练神经网络.[cs231n笔记]10.神经网络训练技巧(上).CS231n学习笔记-训练神经网络.整理学习之 ...