题解:UVA12801 Grandpa Pepe's Pizza

willAK

2025-01-10 20:41:45

Solution

题解:UVA12801 Grandpa Pepe's Pizza

题目大意

一个周长为 c 的披萨,每个整数位置分别从 0c-1。然后有 n 个橄榄,第 i 个橄榄放在 a_i 的位置。\

## 解题思路 在 $a_1$ 与 $a_2$ 中枚举分割披萨的起始位置,一个一个往后推。看看这段距离是否有且仅有一个橄榄即可。\ 注意:**题目多测,需要清空数组**。 ## 解题代码 ```cpp #include<bits/stdc++.h> using namespace std; int c,n; int a[10010]; int main() { while(cin>>c>>n) { memset(a,0,sizeof(a));//多测清空 for(int i=1;i<=n;i++) { cin>>a[i]; } a[n+1]=c+a[1]; int k=c/n;//分割单位长度 bool b=0; for(int i=a[1];i<a[2];i++)//枚举起点 { int f=1,ss=i; for(int j=2;j<=n+1;j++) { if(ss<a[j] && ss+k>=a[j]) { ss+=k; } else { f=0; break; } } if(f==1) { b=1; break; } } if(b==1) cout<<"S\n"; else cout<<"N\n"; } return 0;//完结撒花✿✿ヽ(°▽°)ノ✿ } ```