首页 > 其他分享 >acw 120. 防线

acw 120. 防线

时间:2022-11-30 17:01:39浏览次数:40  
标签:std int sum 防线 120 acw tes

给一些区间【l , r】 , 区间i 内间隔 d[i] 有一个点(可能会重复),保证最后只有一个位置的点数为奇数,其他位置的点数为偶数

找出这个点

 

二分查找

二分点的位置,注意题目中唯一的奇数点

求区间和,判断奇偶性,缩小范围

 

#include "bits/stdc++.h"
using namespace std;
 const int N=2e5+5;
 struct T{
     int l,r,d;
 };
 T a[N];
 int n;
 int sum(int p){
     int i,t=0;
     for(i=1;i<=n;i++){
         if(a[i].l<=p)
         t+=(min(a[i].r,p)-a[i].l)/a[i].d+1;
     }
     return t;
 }
 int rs(int l,int r){
     return sum(r)-sum(l-1);
 }
 void sov(){
     cin>>n;
     int i,l=0,r=0,ans;
     for(i=1;i<=n;i++) 
     cin>>a[i].l>>a[i].r>>a[i].d,r=max(r,a[i].r);
     if(sum(r)%2==0){
         cout<<"There's no weakness.\n";return;
     }
     while(l<=r){
         int md=(l+r)/2;
         if(rs(l,md)%2) ans=md,r=md-1; else l=md+1;  
     }
     cout<<ans<<' '<<sum(ans)-sum(ans-1)<<'\n';
 }
 int main(){
     int tes;
      cin>>tes; while(tes--) sov();
 }

 

标签:std,int,sum,防线,120,acw,tes
From: https://www.cnblogs.com/towboa/p/16939014.html

相关文章

  • 洛谷 P1205 [USACO1.2] 方块转换 Transformations
    [USACO1.2]方块转换Transformations题目描述一块\(n\timesn\)正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转......
  • [LeetCode] 1207. Unique Number of Occurrences
    Givenanarrayofintegers arr,return true ifthenumberofoccurrencesofeachvalueinthearrayis unique,or false otherwise.Example1:Input:arr......
  • AcWing 111. 畜栏预定
    有n头牛在畜栏中吃草。每个畜栏在同一时间段只能提供给一头牛吃草,所以可能会需要多个畜栏。给定n头牛和每头牛开始吃草的时间A以及结束吃草的时间当两头牛的吃草区......
  • AcWing 第79场周赛
    周赛链接:https://www.acwing.com/activity/content/competition/problem_list/2644/AcWing4722.数列元素#include<iostream>usingnamespacestd;intn;intmain(......
  • acwing 110. 防晒
     贪心:按照a[i].y递减排序,对每个牛取所有物品的值最大的#include<bits/stdc++.h>usingnamespacestd;constintN=2504;structT{intx,y;}a[N];......
  • acwing 103. 电影
    莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会。每个科学家都只懂得一种语言。为了方便起见,我们把世界上的所有语言用1到1e9间的整数编号。电影院里......
  • acwing113. 特殊排序
    记录交互题这个东西 classSolution{public:vector<int>specialSort(intN){vector<int>res;res.push_back(1);for(inti=2;i<......
  • acw 102. 最佳牛围栏
     求一个序列中平均值最大的子序列(长度为m) 二分这个平均值,检验答案:每个数-average,看能否找到长度为m的序列 #include<iostream>#include<algorithm>#incl......
  • Acwing100 增减序列
    给定一个长度为n的数列每次可以选择一个区间 使每个数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到......
  • 0120-Go-字符串函数
    环境Time2022-08-25Go1.19前言说明参考:https://gobyexample.com/string-functions目标使用Go语言的字符串函数。示例packagemainimport("fmt"......