文章
10
粉丝
179
获赞
5
访问
31.1k
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF=1e9; int N=0,M=0,K=0; string str,a,b; int strshu,x,y; int sum=0; int road[2500]={0}; //stringstream ss; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); while(cin>>N){ cin>>M>>K; for(int i=0;i<M;i++){ cin>>x; road[x]=1; for(int j=1;j<=K;j++){ //让路灯安装处的左右k处的点都点亮 if(x-j>=1) road[x-j]=1;//若左边到了边界,要特殊考虑 road[x+j]=1;//因为数组足够大,所以不用考虑右边边界问题 } } for(int i=1;i<=N;i++){ //探索整条路的照亮情况 if(road[i]==0){ //当有的点还没被照亮 sum++;//要安装的路灯数加一 int tem=i+K;//让点移动到左边k处,分别让它照亮左边k处和右边k处 road[tem]=1; for(int j=1;j<=K;j++){ if(tem-j>=1) road[tem-j]=1; ...
登录后发布评论
暂无评论,来抢沙发