cf 76 div2
题意
t组样例
n个学生,
x最多交换次数
a交换的第一个位置
b交换的第二个位置
最多是交换n-1次,不懂的话可以找个数列自己模拟一下;
然后其他的就是abs(a-b)+x;两个位置之间的距离加上次数(即变化的距离)
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN = 1e6 + 10;
signed main(){
//freopen("in", "r", stdin);
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin >> T;
while (T--){
int n, x, a, b;
cin >> n >> x >> a >> b;
int max = n - 1;
int tmp = abs(a - b);
cout << min(n - 1, tmp + x) << endl;
}
return 0;
}
题意
T组样例
每次给出x,y
1.x 是偶数,可以变成3/2 * x;
2.x > 1,可以执行x - 1
如果x 是偶数并且大于1,可以选择任何一个操作(我也搞不懂他为什么要这么说,x的范围大于1,又是偶数,那么x min不就是2嘛。。。。)
操作可以执行任意次,也可以不执行
| x | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| y | 1 | 1,2,3, | 1,2,3 | 3,2,1,6,5,4,9,… |
输出YES的情况
如果x是1的话,那么y只能是1
如果x是2的话,x可以执行操作1,2;
执行1,那么就是3,然后只能是执行2,变成2,
执行2,那么就是1
如果x是3,x可以执行2,变成2,那么同上,1,2,3
如果x是4的话,x可以执行操作1,2;
执行1,那么就是6,
然后再是执行1,变成9,执行2,变成8,执行1,变成12.。。。
执行2,那么就是3,然后执行2,变成2,然后执行2,变成1,
这一步的时候,其实都取到了,所以我们特判一下就可以了
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN = 1e6 + 10;
signed main(){
//freopen("in", "r", stdin);
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin >> T;
while (T--){
int a, b;
cin >> a >> b;
if (a == 1){
if (a == b)
cout << "YES" << endl;
else
cout << "NO" << endl;
} else if (a == 2 || a == 3){
if (b == 2 || b == 3 || b == 1)
cout << "YES" << endl;
else
cout << "NO" << endl;
} else
cout << "YES" << endl;
}
return 0;
}
说一下这个题吧,让人爱恨不得,刚开始的时候,看了一眼。然后理解了能分成几个子集QAQ,至于为什么,看到了括号,然后就这样了

今晚和王队讨论的时候,说起了这个题,原来是求相同的两个数之间的最短的距离,数据范围2e5;
所以呢,写了写2333
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn = 2e5 + 10;
int vis[maxn], a[maxn];
int len;
signed main(){
//freopen("in", "r", stdin);
ios::sync_with_stdio(false);
cin.tie(0);
int T, n;
cin >> T;
while (T--){
memset(vis,0,sizeof(vis));
cin >> n;
if (n == 1){
cin >> a[1];
cout << "-1" << endl;
}
else {
len = 0x3f3f3f3f;
for (int i = 1; i <= n; i++) {
cin >> a[i];
if (vis[a[i]])
len = min(len, i - vis[a[i]] + 1);
vis[a[i]] = i;
}
if (len != 0x3f3f3f3f)//预防1 2 3 4 5这种情况
cout << len << endl;
else
cout << "-1" << endl;
}
}
return 0;
}
cf 76 div2的更多相关文章
- cf 442 div2 F. Ann and Books(莫队算法)
cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i, ...
- CF#603 Div2
差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一 ...
- CF R631 div2 1330 E Drazil Likes Heap
LINK:Drazil Likes Heap 那天打CF的时候 开场A读不懂题 B码了30min才过(当时我怀疑B我写的过于繁琐了. C比B简单多了 随便yy了一个构造发现是对的.D也超级简单 dp了 ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- [CF#286 Div2 D]Mr. Kitayuta's Technology(结论题)
题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到 ...
- CF 197 DIV2 Xenia and Bit Operations 线段树
线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i ...
- CF#345 div2 A\B\C题
A题: 贪心水题,注意1,1这组数据,坑了不少人 #include <iostream> #include <cstring> using namespace std; int ...
- CF R303 div2 C. Woodcutters
C. Woodcutters time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- CF 192 Div2
A.Cakeminator 暴搞之,从没有草莓覆盖的行.列遍历 char map[30][30]; int vis[30][30]; int hang[30],lie[30]; int main() ...
随机推荐
- 1.6 SQL (根据时间取值)
select * from 表名 where createdate > date_add(subdate(curdate(),date_format(curdate(),'%w')-1),int ...
- ES6新的数据类型 generato,在AJAX中的应用
1.next()方法会执行generator的代码,然后,每次遇到yield x;就返回一个对象{value: x, done: true/false},然后“暂停”.返回的value就是yield的 ...
- 关于我 & 关于这个博客
关于我 OIer,初一在读,蒟蒻,普及组选手,只拿过两次PJ2=,实乃菜也 喜欢数学,OI,OI 上主要研究高级数据结构(如平衡树)和一些不那么暴力的算法(如分块) 打不动 CF . 关于这个博客 是 ...
- nmon help文档zh-han
nmon版本16g的提示 完整的帮助信息:nmon -h 屏幕统计:nmon 数据收集:nmon -f [-s <秒>] [-c <计数>] [-t | -T] 容量计划:nm ...
- 面试题17.打印从1到最大的n位数
void print_n_number(int n){ if(n<=0){ cout<<"fuckyou"; return; } string s="1 ...
- c/c++学习01
c++指针初始赋值: //指针初始赋值 int* a = new int(3); //第二种赋值 int 初始值 = 100; int *b = &初始值; //由new分配的内存块通常使用过 ...
- 微信小程序UDP通信,注意点 接收 onMessage 收到的message是ArrayBuffer缓冲,不能直接输出,要另转String处理
1.WXML 页面代码 <!--index.wxml--> <view class="container"> <view class="us ...
- 使用Newtonsoft序列化对象,实现深拷贝
工作记录 深拷贝:全新创建一个对象,值与复制对象一致,两个对象互不相关,修改一个对象不会影响到另一个对象 浅拷贝:全新创建一个对象,值与复制对象一致,两个对象相关,修改一个对象影响到另一个对象 在工作 ...
- yum grouplist 安装gnome桌面环境
经常,我们如果需要安装一些比较复杂的软件时,都会在安装操作系统的时候直接勾选,然后进行安装.但是,有的时候,等操作系统安装完了才发现有遗漏的软件没有安装. 这个时候,yum就要出来救场了.使用yu ...
- Django - 美化显示request.META
def index(request): values = request.META.items() html = [] for k, v in values: html.append('<tr& ...