题解 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 &&、||
$(function(){ $('.mainall').textbox({}); var r = 5; r=r==2&&r*8||r*3; alert(r); }); &&am ...
- 规则引擎Drools在贷后催收业务中的应用
作者:vivo 互联网服务器团队- Feng Xiang 在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景.为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务 ...
- day29 jQuery选择器 & jquery属性操作 & jquery DOM元素 操作与遍历
简介 jQuery,顾名思义,就是javascript和query(查询),即辅助javascript开发的库,本质就是一个js文件: jQuery是一个js函数库,是目前全球范围内最流行.用的最多的 ...
- day02 数据类型 & 运算符
day02 数据类型 基本数据类型 共有四类八种 1)整数类型 byte short int long byte: 字节 bit比特,1bit = 1二进制位 ,byte占8位 [-128,128 ...
- day29-JQuery02
JQuery02 4.jQuery选择器02 4.3过滤选择器 4.3.1基础过滤选择器 $("li:first") //第一个li $("li:last") ...
- 4.5:HDFS操作实验
〇.概述 1.拓扑结构 2.目标 进行HDFS的实验,了解HDFS的基本操作. 一.常用操作 1.启动 50070 2.查看及创建 3.上传文件
- 【Java EE】Day09 JavaScript基础、ECMAScript语法、Java对象
一.简介 1.概念 客户端脚本语言 脚本语言:无需编译,直接被解析执行 运行在:客户端浏览器,每个浏览器都有解析引擎 功能: 用户与页面交互 控制html元素 使页面产生动态效果 2.发展史 1992 ...
- appium环境搭建(从入门到放弃)
一.appium环境搭建 1.python3 python3的下载安装这里就不多做介绍了,当然你也可以选择自己喜欢的语音,比如java.... 2.jdk 1)下载地址 官网(需登录账号): http ...
- Qt对象跨线程出现的问题记录,以及解决方案
Qt在跨线程开发的时候可能会出现不少问题,在这里记录一下 Qt目前用下来还是非常强大的,虽然只是用在桌面端程序开发上,但是其强大的桌面开发库真的挺好用的(Layout除外,你妈死了). Qt除了UI, ...
- 【转载】EXCEL VBA 通过VBA中的Union合并多个Range选择区域
在Excel中,Union的功能是合并两个或两个以上的选择区域,合并成为一个更大的区域. 所合并的多个选择区域,这些选择区域,可以是不连续的,也可以是连续的.一般情况下,要使用Union,可通过如下来 ...