传送门

题意

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. YAML(YML)语法详解

    ansible playbook是由yaml(yml)语法书写,结构清晰,可读性强,所以必须掌握yaml(yml)基础语法 语法 描述 锁进  YAML使用固定的缩进风格表示层级结构,每个缩进由两个空 ...

  2. vue中mixins的理解及应用

    vue中mixins的理解及应用 vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情 ...

  3. 磁盘分区(1):fdisk和parted

    一.Linux存储管理 关于Linux硬盘的识别: (1)如果是IDE设备,在计算机中将被识别为hd,第一个IDE设备会被识别为hda,第二个IDE设备会被识别为hdb,依此类推. (2)如果是SAT ...

  4. 【转载】Java开发中的23种设计模式

    转自:http://zz563143188.iteye.com/blog/1847029 一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建 ...

  5. 一段讯飞、百度等语音识别API无法识别的语音最终解决办法

    最近在做语音识别.字幕扒词相关的工作,遇到了一段录音(https://download.csdn.net/download/u014220286/12169183,各位有兴趣的可以下载下来试试),音质 ...

  6. C9300升级-USB

    1.show ver查看设备的版本 2.一些版本信息的参考 3.准备USB查看其具备的镜像命令:dir usbflash0: 4.复制镜像到设备命令:copy usbflash0:cat9k_iosx ...

  7. FromBase64String 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符

    js前台: <input id="upload_img_input" v-on:change="onFileChange" type="file ...

  8. Spring - jdbcTemplate - 调试代码: PreparedStatementCreator 生成的语句, update 之后没有 自增id, 已解决

    1. 概述 解决 jdbcTemplate 下, update 结果不带 自增id 的问题 2. 场景 看书 Spring in Action 5th 3.1.4 listing 3.10 saveT ...

  9. 多租户SaaS平台的数据库方案

    1.1 多租户是什么 多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向企业用户)共用相同的系统或程序 ...

  10. 关于XShell&XFtp

    今天在开发的时候要打包一个东东到测试服务器去,突然发现xftp用不了,然后各种下载破解.绿色版 结果都是一堆广告,原来这个xshell支持民用版,无需破解就能下载使用,这里小小的记录下 一.  前言 ...