首页 > 其他分享 >题解 CF1080B

题解 CF1080B

时间:2022-11-30 09:12:26浏览次数:36  
标签:CF1080B ch 题解 偶数 端点 include

题解 CF1080B

莫名就卡到了最优解第一,但是代码又长又臭,很明显我代码实现能力太弱了。。。

直接开始讲,我都不知道怎么讲

分情况讨论

  • 如果 \(l=r\):

    我们只需要考虑这个位置的奇偶即可,奇数是 \(-l\) ,偶数是 \(l\),如图

  • 如果不是的话,我们就判断两端点的奇偶性

    如果我们想用简便的方法去计算这段区间的和,我们就会发现,相邻的一奇一偶(奇数在偶数的左边)会相互抵消为 1

    所以我们可以考虑去让这段区间变为这样的一个形式,如果右端点是奇数就先把右端点的贡献算上,然后再 \(r-1\) ,如果左端点是偶数,我们就需要吧 \(l-1\) ,然后把当前 l 的贡献从最终结果中去除掉,这样才能保证最终结果正确,中间区间内相邻两个正好抵消为 1 ,直接统计
    如图一个过程

// #Tyrue#
#include<map>
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-')f=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
        x=x*10+ch-'0',ch=getchar();
    return x*f;
}
const int N=1e8;
int T,n;
int main(){
    T=read();
    while(T--){
        int ans=0;
        int x=read(),y=read();
        if(x==y){
            if(x&1){
                ans=-x;
            }else{
                ans=x;
            }
            printf("%d\n",ans);
            continue ;
        }
        if(y%2){
            ans-=y;
            y--;            
        }
        if(!(x%2)){
            x--;
            ans+=x;
        }
        ans+=(y-x+1)>>1;
        printf("%d\n",ans);
    }
    return 0;
}

标签:CF1080B,ch,题解,偶数,端点,include
From: https://www.cnblogs.com/Tyrue-blog/p/16937373.html

相关文章

  • 题解 CF1253B
    题解CF1253B这个题是一个模拟题只需要注意几点:1.同一天同一个人只能进入一次2.同一天同一个人只能出去一次3.一天中一个人没进来就不能出去然后我们用vis数组......
  • 题解 CF1711B
    题解CF1711B这个题说明了,蛋糕的个数只跟好友的对数有关,跟去的人或者是单个的人的个数是无关的(是不是单个的人去没有蛋糕吃)所以我们就要考虑,怎样才能满足吃掉的蛋糕正好......
  • 题解 CF1740D
    CF1740D这个题说实话比\(C\)题要好想/jk,但是我没有在考场上写出来,写出来了但是没交上这个题只需要记录一下终点当前时刻,需要放置下标的棋子(姑且叫它棋子),以及当前棋盘上......
  • Codeforces Round #836 (Div. 2) A-D题解
    比赛链接A、SSeeeeiinnggDDoouubbllee一个字符串的每个字母翻倍,且没有其他限制。所以把字符串正着输一遍,再倒叙输出一遍即可。点击查看代码#include<bits/stdc++.h>......
  • 【题解】 P8287 「DAOI R1」Flame
    题面传送门解决思路本题解是对这篇题解部分内容的补充,讨论的是两种\(\mathcal{O(m\logn)}\)的做法。大体思路都是一样的,先预处理出每一条边需要多少时间后才能连......
  • 2022 ICPC 济南站 L 题题解
    题意给定一棵\(n\)个点有边权的无根树,有\(q\)次询问,每次给定\(l,r\),求\[\min_{l\leu<v\ler}\{\operatorname{dist}(u,v)\}.\]数据范围:\(1\len\le2\times10^5......
  • 「题解」Codeforces 1765L Project Manager
    写了两个小时写吐了,你告诉我这玩意2400?如果不管假期的话,那么每一周必然会有一个项目跟进一次进度。那么答案就是线性的。即使有假期的存在也没关系,每个假期顶多就只会拖......
  • angular FormArray 中嵌套 FormGroup 问题解决
    官方例子里说了FormArray可以嵌套group或者array,但只给了control的实例,这里记录一下嵌套groupts文件:import { Component } from '@angular/core';import { For......
  • NOIP 2022 题解
    rp++juruo的noip真实成绩:0+0+0+0=0pts.题目大意洛谷有,这里就不放了。T1.种花可以维护每一个点向下最多延伸多长$xia_i$,向右延伸最多多长$you_i$,这样C就好求了,可以维......
  • 题解 P4448
    如果这不是一道原题,这道题出的还不错,是个比较毒瘤的数数。由于我太菜了反正我自己没有做出来后面的dp,zyf巨佬教的。不过听说合肥六中某巨佬当年也没做出来,平衡了雾但问......