51nod
yangdelu855
算法工程师
展开
-
51nod 1256 乘法逆元
点这里模板题。。。。#include #include #include #include using namespace std;int exgcd(int a, int b, int &x, int &y) { if (!b) { x = 1, y = 0; return a; } int t, ret; re原创 2017-07-29 10:16:25 · 173 阅读 · 0 评论 -
51nod 1103 N的倍数 抽屉原理
点这里第一种情况把和取模存到数组判断为0直接输出第二种情况大佬写的代码简直。。。抽屉原理有N个数 N+1个和而取模后只有0-N-1个数所以至少有一组相等相等的两数相减之后就是我们要求的第二种情况注意输出一组解就可以了这道题是Special judge 有多组解抽屉原理好神奇。。。。#include #include #include原创 2017-08-01 13:15:49 · 201 阅读 · 0 评论 -
51nod 1284 2 3 5 7的倍数 容斥原理
点这里首先关于容斥原理设满足一件事(n1||n2||n3||n4......)那么容斥原理的计数就等于=+(满足奇数个条件的数目)-(满足偶数个条件的数目) 这道题里需要找出同时不是2,3,5,7倍数的个数,也就相当于找出是2,3,5,7的倍数个数,然后用总数减掉,就得到最终结果所以满足一个条件即为 是2的倍数或3的倍数或5的倍数或7的倍数满足两个条件即为 2的倍数原创 2017-08-07 12:34:25 · 275 阅读 · 0 评论 -
51nod 1005 大数加法
点这里注意细节!#include #include #include #include #include #include #include using namespace std;string tt1;string tt2;char tt3[10010];char tt4[10010];int ff1[10010];int ff2[10010];int ans原创 2017-08-10 17:27:55 · 187 阅读 · 0 评论 -
51nod 1240 莫比乌斯函数
点这里知道公式很好做的一道题#include #include #include #include using namespace std;const int mod = 1e9 + 7;const int maxn = 1e6 + 5;int prime[maxn];int vis[maxn], cnt, p;typedef long long ll;void ini原创 2017-08-11 20:02:35 · 177 阅读 · 0 评论 -
51nod 1001 数组中和等于K的数对
点这里暴力题还是二分速度快#include #include #include using namespace std;int n,k;int tt[50005],xx[50005];int main(){ while(cin>>k>>n) { int f=0; for(int i=0; i<n; i++)原创 2017-08-04 20:23:20 · 175 阅读 · 0 评论 -
51nod 1242 斐波那契数列第N项
传送门--斐波那契数列第N项矩阵连乘快速幂取模#include#includeusing namespace std;const int maxn=2;struct Matrix{ long long int m[maxn][maxn];};long long int n;Matrix P={1,1, 1,0};Matrix I={1,0,原创 2017-07-27 20:41:06 · 219 阅读 · 0 评论 -
51nod 1004 n^n的末位数字
点这里越来越懒了难过刷水题规律题#include #include #include using namespace std;typedef long long ll;int ans[10][5]{ {0},{1},{2,4,8,6},{3,9,7,1},{4,6},{5},{6},{7,9,3,1},{8,4,2,6},{9,1} };int main(){原创 2017-08-20 14:22:36 · 184 阅读 · 0 评论 -
51nod 1179 最大的公约数
点这里一道暴力水题一开始总RE没考虑因子的大小。。。#include #include #include #include using namespace std;int tt[50010];int tt1[1000005];int max(int a, int b){ if (a > b) return a; else return b;}int ma原创 2017-08-14 12:15:57 · 170 阅读 · 0 评论 -
51nod 1120 机器人走方格V3 卡特兰数+卢卡斯定理
点这里忘了好久的公式。。。终于想起来查卡特兰数卡特兰数计算公式C(2n-2,n-1)/n或C(2n,n)-C(2n,n-1)卢卡斯定理 用于大组合数取模运算ans=(C(2n-2,n-1)/n)*mod#include #include #include #include using namespa原创 2017-07-31 12:51:46 · 298 阅读 · 0 评论 -
51nod 1189 阶乘分数
素数打表求素因子个数套公式求因子个数快速幂求逆元#include #include #include #include #define mod 1000000007using namespace std;typedef long long ll;int prime[1000005];int vis[1000005],cnt;ll quick_mod(ll a,ll原创 2017-07-27 20:30:02 · 265 阅读 · 0 评论 -
51nod 1256 乘法逆元
传送门--乘法逆元模板题#include #include #include #include using namespace std;int exgcd(int a, int b, int &x, int &y) { if (!b) { x = 1, y = 0; return a; } int t, ret;原创 2017-07-27 20:35:30 · 138 阅读 · 0 评论 -
51nod 1264 线段相交
传送门--线段相交快速排斥&&跨立实验#include #include #include #include using namespace std;struct point{ double x; double y;};struct v{ point start; point end;};double fun(point p1,poin原创 2017-07-27 20:37:31 · 242 阅读 · 0 评论 -
51nod 1298 圆与三角形
点这里计算几何题不难。。好想长一个脑子啊感谢大佬相助#include #include #include #include using namespace std;double x[4],y[4];double a,b,r,A,B,C;double dis(double x1,double y1,double x2,double y2){ return原创 2017-07-28 16:34:50 · 154 阅读 · 0 评论 -
51nod 1265 四点共面
= =套公式#include #include using namespace std;typedef struct node{ int x,y,z;}xv;int main(){ int n; xv t[5]; while(cin>>n) { while(n--) { for(int i=0原创 2017-07-28 16:41:30 · 179 阅读 · 0 评论 -
51nod 1046 A^BMod C
点这里模板题。。。#include #include #include #include using namespace std;const int maxn=1e5+5;static long long mod=1e9+7;long long a=0,b;long long quick_mod(long long aa,long long b){ long l原创 2017-07-29 10:12:50 · 164 阅读 · 0 评论 -
51nod 1014 X^2ModP=A
点这里暴力啊暴力#include #include #include #include using namespace std;typedef long long ll;int main(){ int P,A; while(cin>>P>>A) { int t=0; for(ll i=0;i<=P;i++) {原创 2017-07-29 11:20:02 · 184 阅读 · 0 评论 -
51nod 1133 不重叠的线段
传送门---不重叠的线段贪心--好像和一个看电视节目的是一个题#include #include #include using namespace std;struct node{ int x,y;};bool cmp (node a,node b){ return a.y<b.y;}int main(){ struct node t[10001];原创 2017-07-27 20:17:36 · 204 阅读 · 0 评论 -
51nod 1116 K进制下的大数
点这里一开始一直WA。。因为进制从2开始无论是多少结果都是二要从最大数加一的进制开始遍历后来TLE 结果 改掉了模拟进制转换结果就A了。。数学题。。运气。。#include #include #include #include using namespace std;char x[100005];int t[100005];long long mc(int x,i原创 2017-07-30 23:18:20 · 156 阅读 · 0 评论 -
51nod 1100 斜率最大
点这里题不难 两次遍历会TLE#include #include #include using namespace std;struct node{ double x,y; int num;} t[10005];bool cmp(node a,node b){ return a.x<b.x;}double xl(node a,node b)原创 2017-07-29 09:17:36 · 268 阅读 · 0 评论