-3
我试图解决this问题,因为最后两天。我没有得到正确的结果。 接受的解决方案是先排序链的数量。我不明白他们为什么这样做。 只是第一个任务是正确的。对于第二项任务,答案是错误的,并且第三次超出限制。链 - codechef
这是我的代码:
#include<iostream>
using namespace std;
int main() {
int t;
cin>>t;
while(t--) {
long n=0;
int f=0,c=0,cuts=0;
cin>>n>>c;
int toJoint=c-1;
int A[c];
for (int i =0;i<c;i++)
cin>>A[i];
if (c>2){
for (int i =0;i<c;i++) {
if (A[i]==1) {
f++;
cuts++;
toJoint-=2;
if(toJoint<=1) break;
}
}
if (toJoint>0){
if (f==0) cout<<toJoint<<endl;
else cout<<(cuts+toJoint)<<endl;
}
else cout<<cuts<<endl;
}
else if (c==1) cout<<0<<endl;
else cout<<++cuts<<endl;
}
return 0;
}
制作您的问题首先有效。你可以阅读[这里](http://stackoverflow.com/help/mcve)如何。此外,总是很难说,为什么你要通过在线代码法官得到一个WA,因为他们的内部工作没有透露。 –
你必须重新考虑你的算法。对于'X X X 2'(X> = 2),你可能会削减2整个链条有'X -1- X -1- X',所以答案是2不3为你的答案。 – Jarod42
@ Jarod42是否需要排序才能得到正确答案? –