top1编程
← 返回题目
题解

【提高】小 X 与煎饼达人(flip)

1 条题解

  • 0
    @ 2026-7-28 22:09:34
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int a[N];  //a数组直接表示差分  默认为0 说明饼是反面 
    int n,m,x,y,s=0;
    int main(){
    	cin>>n>>m;
    	for(int i=1;i<=m;i++){
    		cin>>x>>y;
    		a[x]++; //第x个��的翻转次数++ 表示比第x-1个饼多翻转了一次 
    		a[y+1]--;//第y+1饼的翻转次数比之前的第y个饼少翻转一次 
    	}
    	for(int i=1;i<=n;i++){
    		a[i]+=a[i-1];  //前缀和统计出每个饼的翻转次数 
    		if(a[i]%2==1){//奇数是正面
    			s++;
    		}
    	}
    	cout<<s;
    }
    
    • 1