社区讨论

求调

CF1858B The Walkway参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo1t9wkv
此快照首次捕获于
2023/10/23 02:37
2 年前
此快照最后确认于
2023/11/03 03:11
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int T;
int a[maxn];
void solve()
{
	int n,m,k;
	cin>>n>>m>>k;
	for(int i=1;i<=m;++i)
	    cin>>a[i];
	a[m+1]=n;
	a[0]=1;
	int sum=m;
	if(a[1]!=1) sum+=(a[1]-2)/k+1;
	for(int i=1;i<=m;++i)
		sum+=(a[i+1]-a[i]-1)/k;
	int t=0,ans=191981145;
	for(int i=1;i<=m;++i){
		if(a[i]==1) continue;
		int f;
		f=sum-(a[i]-a[i-1]-1)/k-(a[i+1]-a[i]-1)/k
		     +(a[i+1]-a[i-1]-1)/k-1;
		if(f<ans){
			t=1;
			ans=f;
		}
		else if(f==ans) t++;
	}
	cout<<ans<<" "<<t<<endl;
}//O(3Tm)
int main()
{
    cin>>T;
    while(T--)
        solve();
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...