传送门

题意

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的更多相关文章

  1. 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, ...

  2. CF#603 Div2

    差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一 ...

  3. CF R631 div2 1330 E Drazil Likes Heap

    LINK:Drazil Likes Heap 那天打CF的时候 开场A读不懂题 B码了30min才过(当时我怀疑B我写的过于繁琐了. C比B简单多了 随便yy了一个构造发现是对的.D也超级简单 dp了 ...

  4. CF#581 (div2)题解

    CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...

  5. [CF#286 Div2 D]Mr. Kitayuta's Technology(结论题)

    题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到 ...

  6. CF 197 DIV2 Xenia and Bit Operations 线段树

    线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i ...

  7. CF#345 div2 A\B\C题

    A题: 贪心水题,注意1,1这组数据,坑了不少人 #include <iostream> #include <cstring> using namespace std; int ...

  8. CF R303 div2 C. Woodcutters

    C. Woodcutters time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. CF 192 Div2

    A.Cakeminator 暴搞之,从没有草莓覆盖的行.列遍历 char map[30][30]; int vis[30][30]; int hang[30],lie[30]; int main() ...

随机推荐

  1. Redis04——Redis五大数据类型 key

    key  keys *  查看当前库的所有键  exists <key>  判断某个键是否存在  type <key>   查看键的类型  del<key>  删除 ...

  2. 第二十四篇 玩转数据结构——队列(Queue)

          1.. 队列基础 队列也是一种线性结构: 相比数组,队列所对应的操作数是队列的子集: 队列只允许从一端(队尾)添加元素,从另一端(队首)取出元素: 队列的形象化描述如下图: 队列是一种先进 ...

  3. gbase安装教程

    一.安装前的准备工作 1.对网卡进行配置 [root@gbase8a ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADD ...

  4. wampserver apache 403无权限访问 You don't have permission to access /index.html on this server

    今天接到要求 需要配置一下https 折腾好久 最后好还遇到了权限不够的问题 最后解决方案如下 我这边补充一下我的方法 我的apache是 2.4.23 版本 是由 wampserver集成的 在 h ...

  5. Go_goroutine初识

    package main import ( "fmt" ) func main() { /* 一个goroutine打印数字,另外一个goroutine打印字母,观察运行结果.. ...

  6. cordova的安装与配置

    1.安装nodejs(自动包含npm) 2.在命令行中通过npm语句npm install -g cordova 安装cordova(如果提示网络连接失败,需要设置网络代理,搭理网址:npm conf ...

  7. Linux 文件属性 chgrp、chown、chmod的用法

    Linux 文件属性 ls 是 list 的意思,重点在显示文件的文件名与相关属性.选项 -al 表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为 . 的文件) 第一栏代表这个 ...

  8. Nodejs的Gruntjs使用一则

    Gruntjs是前端项目构建工具,基于nodejs命令.有些js项目是基于Gruntjs构建的,如Jquery. Gruntjs主要功能有: 1.合并文件. 2.压缩html,js,css,图片文件. ...

  9. python学习之matplotlib绘制动图(FuncAnimation()参数)

    1.函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下: a.fig 绘制动图的画布名称 b.func自定 ...

  10. C#面向对象三大特性:多态

    什么是多态 公司最近为了陶冶情操,养了几种动物(Animal),有猫(Cat).狗(Dog).羊(Sheep),这些动物都有共同的特性,会吃(Eat).会叫(Shout),但是它们吃的不同,叫的也不同 ...