社区讨论
Hack&请求撤下题解
P4316绿豆蛙的归宿参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @m63ept8d
- 此快照首次捕获于
- 2025/01/19 17:20 去年
- 此快照最后确认于
- 2025/11/04 11:17 4 个月前
Hack1 的 in 的程序 & out:
CPP//in:
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("1.in","w",stdout);
int n=100000,t=(n-2)/2,m=t*3;
cout<<n<<" "<<m<<'\n';
for(int i=2;i<=t+1;i++)
cout<<"1 "<<i<<" 1\n";
for(int i=2;i<=t+1;i++)
cout<<i<<" "<<t+2<<" 1\n";
for(int i=t+2;i<n;i++)
cout<<i<<" "<<i+1<<" 1\n";
return 0;
}
//out: 50001.00
原理如图,暴力程序每次从 开始抵达终点,但当 接近 时,时间复杂度约为 ,超时。

Hack2 的 in 的程序 & out:
CPP//in:
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("2.in","w",stdout);
int n=100000,t=n/3,m=t*4;
cout<<n<<' '<<m<<'\n';
for(int i=1;i<=t;i++){
cout<<i*3-2<<' '<<i*3-1<<" 1\n";
cout<<i*3-1<<' '<<i*3+1<<" 1\n";
cout<<i*3-2<<' '<<i*3<<" 1\n";
cout<<i*3<<' '<<i*3+1<<" 1\n";
}
return 0;
}
//out: 66666.00
原理类似,用一堆分岔路增加递归数量,暴力程序的时间复杂度此时为 。
回复
共 5 条回复,欢迎继续交流。
正在加载回复...