windows下对拍

来源:互联网 发布:哪里能买到数据 编辑:程序博客网 时间:2024/04/27 21:59

对拍这个神器的玩意儿。。。苟蒻初中的时候就想学不过老是没机会

终于在昨晚(其实是几分钟前)通过百度学会了在Windows下C++对拍!!!

这里以简单的快速幂为例



首先来个暴力幂

#include<cstdio>#include<iostream>using namespace std;long long n,m,k;int main(){cin >> n >> m >> k;long long sum = 1;for (int i = 1; i <= k; i++) sum = sum * n % m;cout << sum;return 0;}



然后是华丽屌炸天的正解

#include<cstdio>#include<iostream>using namespace std;typedef long long LL;LL n,m,k;LL mi(LL x,LL y){LL ret = 1,now = x;for (; y; y >>= 1){if (y & 1) ret = ret * now % m;now = now * now % m;}return ret;}int main(){cin >> n >> m >> k;cout << mi(n,k);return 0;}


随机数生成器。。。

顺便普及下刚学到的知识,Windows下rand()函数的范围是[0,2^16)

所以说有特殊要求得适当调戏下rand()

#include<cstdio>#include<iostream>#include<ctime>#include<cstdlib>using namespace std;int main(){srand(time(0));long long a,b,c;a = (rand() << 16) + rand();b = (rand() << 16) + rand();c = (rand() << 16) + rand();printf("%lld %lld %lld\n",a,b,c);return 0;}


然后就是超级屌的对拍程序!!!!!!!!

然后就是超级屌的对拍程序!!!!!!!!

然后就是超级屌的对拍程序!!!!!!!!

#include<cstdio>#include<iostream>#include<cstdlib>#include<windows.h>using namespace std;int main(){int t = 10;while (t--){system("data > mi.in");system("ksm < mi.in > 1.out");system("blm < mi.in > 2.out");if (system("fc 1.out 2.out")) break;}system("pause");return 0;}


嗯。。最后每个文件都编译下,新建好需要的.in,.out之类,运行duipai.exe就可以查看结果啦!



1 0
原创粉丝点击