Loading

08 2019 档案

摘要:逆元:在mod意义下,不能直接除以一个数,而要乘以它的逆元 a*b≡1(mod p) ,a,b互为模n意义下的逆元 一个数有逆元的充分必要条件是gcd(a,mod)=1 ( a + b ) % p = ( a % p + b % p ) % p ; (正确) ( a - b ) % p = ( a 阅读全文
posted @ 2019-08-19 14:58 qinuna 阅读(278) 评论(0) 推荐(0)
摘要:欧拉函数:求小于等于n的数中与n互质的数的数量 求欧拉函数值: ll euler(ll x) { ll ans=x; for(int i=2;i*i<=x;i++) { if(x%i==0) { ans=(ans/i)*(i-1); while(x%i==0) x/=i; } } if(x>1) a 阅读全文
posted @ 2019-08-19 14:11 qinuna 阅读(140) 评论(0) 推荐(0)
摘要:给定长度为n的字符串S,构造一个字典序最小的字符串T 操作: 1:从S的头部删除一个字符加到T尾部 2:从S的尾部删除一个字符加到T尾部 前后比较,如果前后相同,比较S与反转后的SS 如果S小,把S的开头加进去 如果SS小,把S的尾部加进去 例题:http://poj.org/problem?id= 阅读全文
posted @ 2019-08-18 15:32 qinuna 阅读(208) 评论(0) 推荐(0)
摘要:树状数组:二进制的应用 与线段树的区别:树状数组的问题都可以用线段树解决,树状数组系数少,效率高 修改、查询复杂度:O(lon N) 单点更新、区间查询: C[1]=C[0001]=A[1] C[2]=C[0010]=A[1]+A[2] C[3]=C[0011]=A[3] C[4]=C[0100]= 阅读全文
posted @ 2019-08-18 12:39 qinuna 阅读(145) 评论(0) 推荐(0)
摘要:卡特兰数是一种经典的组合数,前几项为: 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796,58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190,  阅读全文
posted @ 2019-08-14 21:23 qinuna 阅读(219) 评论(0) 推荐(0)
摘要:给你一个序列s = {a1,a2……an},然后可以任意交换其中两个元素 i , j 的位置,代价是ai + aj,把序列变成有序,求最小代价 思路:置换群的巧妙应用 以4 3 2 7 1 6 5为例画图 有三个环 4->7->5->1->4 3->2->3 6->6 要求代价最小,则通过用环里的最 阅读全文
posted @ 2019-08-14 15:47 qinuna 阅读(418) 评论(0) 推荐(0)
摘要:由递归函数画出 1:将给点线段(p1,p2)三等分 2:以三等分点s、t为顶点做出正三角形(s,u,t) 3:对线段(p1,s)、(s,u)、(u,t)、(t,p2)递归重复上述操作 #include <iostream> #include <cmath> #include <cstdio> usi 阅读全文
posted @ 2019-08-06 12:01 qinuna 阅读(1567) 评论(0) 推荐(0)
摘要:计算任意一天是星期几 W=[C/4]-2C+Y+[Y/4]+[13×(M+1)/5]+D-1 C:年份头两位,即世纪数-1 Y:年份后两位 M:范围为3到14 (13是下一年的一月)比如:2003年1月1日要看作2002年的13月1日来计算 D:日 W:星期 mod7 得几就是星期几 得0为星期日 阅读全文
posted @ 2019-08-06 10:40 qinuna 阅读(212) 评论(0) 推荐(0)