- 博客(6)
- 收藏
- 关注
原创 uva12535求圆上所有的点能形成的锐角三角形的数量
题意:给出圆上每个点的角度,然后询问这些点能形成多少个锐角三角形。思路:反向思考,总的三角形的个数C(n,3) -- 直角三角形 - 钝角三角形 = 锐角三角形的个数对于直角三角形和钝角三角形来求的话,就是以直角为中介,如果产生的是直角的话,那么枚举的这个点对应的那个点的连线经过圆心,也就是每次二分找到一个于180最接近的点,那么这两个点直接的所有的点都能抽出两个与枚举的那
2017-11-30 21:07:14 461
原创 Codeforces 895C(状压)
题目大意n个数(n思路考虑到,完全平方数是那些每种质因子个数都为偶数的数,所以把每个数都分解成质因子相乘的形式,同时对每种质因子的个数对%2,因为70以内的质数只有19个,所以可以把每个数压位,第i位表示这个数的因子是否有奇数个第i个质数。压位DP又因为数的范围只从1~70,所以我们记录每个数出现的次数,有一个dp方程,dp[i][j] 表示考虑前i个数,相乘结果为j(压位
2017-11-29 13:30:00 500
原创 Codeforces 893E
题意:将x 分成y个数的方法,要求y个数相乘等于x;思路: 将x质因子分解,得到各个素因子的指数cnt,然后将cnt分成y份,利用隔板法,为C(cnt + y - 1,y- 1) == C(cnt + y - 1,cnt);因为里面可以出现负数, 俩俩出现,所以是C(y,0) + C(y,2) + C(y,4) + …… ==2^(y - 1);#includeusi
2017-11-28 20:46:09 334
原创 hdu 4507 数位dp(好题)
题解:数位dp和简单的数位dp不同,这道题要算所有合法数的平方和考虑到一个数可以写成X=ΣAi*Pi,(其中Ai为X每一位的值,Pi=10^i)因为(A+B)^2=A*A+2*A*B+B*B(X1+X2+X3+...+Xn)^2=X1^2+2*X1*(X2+X3+...+Xn)+(X2+X3+...+Xn)^2=X1^2+2*X1*(X2+X3+...+Xn)+X2^2
2017-11-28 18:32:42 240
转载 Java Arrays类进行数组排序
转载自:https://www.cnblogs.com/xudong-bupt/p/3168618.htmlJava Arrays类进行数组排序 排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。 Java API对Arrays类的说明是:此类包含用来
2017-11-27 10:27:22 352
原创 bzoj 2038 (莫队入门)
先预处理一下C(i,2),然后增区间的时候只需要执行减加操作。#includeusing namespace std;#define clr(x,y) memset(x,y,sizeof x)typedef long long ll;typedef unsigned long long ull;const int maxn = 2e5 + 10;int a[maxn],n
2017-11-01 17:07:53 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人