AT_abc127_c [ABC127C] Prison

发布时间:2026/6/28 11:01:39

AT_abc127_c [ABC127C] Prison 我们现在有 N 张ID卡有 M 道门。我们有第 Li张、第 Li1张、…第 Ri张ID卡中的一张的时候我们可以通过第 i 道门。总共有几张卡符合“只用一张卡就能通过全部门”好乱输入格式第1行有两个以空格隔开的数N 和 M第2M1行有两个以空格隔开的数Li 和 Ri输出格式输出一个整数为符合“只用一张卡就能通过全部门”这样的ID卡数量//好乱~~~输入输出样例输入 #14 2 1 3 2 4输出 #12输入 #210 3 3 6 5 7 6 9输出 #21输入 #3100000 1 1 100000输出 #3100000说明/提示所有输入都是整数1≤N≤1051≤M≤1051≤Li≤Ri≤N这道题看似很乱其实简单到m就如下解释样例解释样例1、样例4相同的两个样例有2张ID卡满足“只用一张卡就能通过全部门”如下第1张ID卡不能让我们通过第2道门第2张ID卡能让我们通过所有的门第3张ID卡能让我们通过所有的门第4张ID卡不能让我们通过第1道门所以总共满足“只用一张卡就能通过全部门”的ID卡数量为2张第2、3张。这道题的意思就是求它们的共有的区间就比如第一样例的区间是2到31 2 32 3 4也就是2和3是共有的只不过最终结果求的是有多少个区间数这题有二分等方法只不过今天用的是区间话不多说上代码#includebits/stdc.h using namespace std; int n,m; int l,r; int xian,hou100000;//区间变量 int main(){ scanf(%d%d,n,m); for(int i1; im; i){ scanf(%d%d,l,r); xianmax(l,xian); houmin(r,hou);//判断区间开始区间求最大的结束区间求最小的 } if(houxian)printf(%d,hou-xian1);//输出区间数个数 else printf(0);//避免开始区间大于结束区间 return 0; }这道题是相当简单的区间问题可以AC不得私自抄袭或转载

相关新闻