luogu配对4.0 by 小跳蛙
反比例函数
2019-08-08 21:26:14
实现洛谷16人配对
食用方式:按鼠标右键显示一次配对结果
悄悄告诉大家这里有彩蛋的
```
#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
const int N=25,n=16;
const string s[]={"","夜刀神十香 ","Asuna_Rivaille","QwQ自动机","奶酥奶酥QwQ","粒子群优化blct","NaCly_Fish","Kirito_Rivaille","我是一个垃圾","反比例函数","charliegong","智子","AC鸭","小跳蛙","QAQer","kkk的忠实舔狗","juruoOrz"};
char vis[N];
int num,fla=0;
inline int getrand()
{
int ret;
for(ret=rand()%n+1;vis[ret];ret=rand()%n+1);
return ret;
}
inline void print(int a,int b)
{
if(vis[a]||vis[b]||a==b) return;
cout<<"恭喜"<<s[a]<<"和"<<s[b]<<"配对成功!\n";
vis[a]=vis[b]=1;
num++,num++;
}
int main()
{
srand(time(0));
while(1)
{
if(KEY_DOWN(VK_RBUTTON)) fla=1;
if(KEY_DOWN(VK_SPACE)) break;
if(fla)
{
memset(vis,0,sizeof(vis));
for(num=0;num<n;)
{
int a=getrand(),b=a;
if(a==1) print(a,4);
else if(a==4) print(a,1);
else if(a==2) print(a,7);
else if(a==7) print(a,2);
else {while(b==a||b==1||b==2||b==4||b==7) b=getrand();print(a,b);}
}
Sleep(1000),fla=0,puts("");
}
}
return 0;
}
```