
数论
文章平均质量分 75
wjhshuai
这个作者很懒,什么都没留下…
展开
-
HDU-6069 Counting Divisors
Counting Divisors这道题其实就是数论题目求因子数原创 2017-08-09 18:21:56 · 227 阅读 · 0 评论 -
HDU --6143 Killer Names
Killer Names题目:(题目链接)思路数学题考验的是排列组合思路:因为一个字符不可以同时出现在名和性中,那么就先选择字符(字符可以不用完)选完字符后乘以其所有的情况,然后把其加起来,过程中要mod情况是提前先算出来了,下面代码中a数组存的就是此过程#include #include #include #include原创 2017-08-23 09:30:05 · 201 阅读 · 0 评论 -
nowcoder 小AA的数列
这道题是二进制的改进题目,目的是利用二进制来减少时间复杂多这类题对数学要求比较高!!!首先要明确几个定理1.异或运算(^)是满足交换律和结合律2.a^b^a=b3. a^b=c a=c^b 首先!先看看这个问题是如何与二进制扯上关系的!!目的:求一个区间的异或和可以先把区间的数都看成二进制数(实质上^运算就是按照二进制算的)假如:对于二进制的原创 2017-11-29 20:42:57 · 685 阅读 · 0 评论 -
计蒜客--天上的星星
题目链接这道题看似是线段树,但是其实不用线段树就可以做sum表示从(0,0)到(i,j)的所有亮度和,然后求区间的亮度,可以用容斥原理进行计算#include<bits/stdc++.h>using namespace std;int sum[2002][2002];int main(){ int n; scanf("%d",&n); memse...原创 2018-03-10 16:06:12 · 255 阅读 · 0 评论 -
FZU--据说题目很水
题目链接这道题不难,但是不好想思路:把城市分为两个集合,这两个集合只要不集合内部的元素互相连线,那么就不会出现3个城镇互相相连的情况#include<stdio.h>using namespace std;int main(){ int T; scanf("%d",&T); while(T--) { int n; ...原创 2018-03-26 12:37:27 · 160 阅读 · 0 评论 -
第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-F等式(数论)
题目链接这道题是一个数论题,下面慢慢来证明:1/x+1/y=1/n;1/y右移—> 得1/x=y-n/ny令y-n=a 即n=y-a1/x=a/y(y-a) 即 1/x=a/(y*y-y*a)使等式成立即a整除(y*y-y*a)即a整除y*y最后得答案为y*y的因子数然后用约数个数定理快速解决问题注意要x<=y那么有由于y*y必定完全平方数,那么最后结果 为res/2+1...原创 2018-03-27 16:39:01 · 210 阅读 · 0 评论 -
HihoCoder - 1701(注意取模和除法的矛盾)
题目链接思路非常简单!先对所有的数取模对于取模后的值相同的数来说,它们的差都为K的倍数然后用排列组合就解决了!!注意,求排列组合时有非常容易犯的错误!那就是如果取余就不要再算除法了!!那样是错误的因为给的数据也不大,所以计算组合数的时候不取余数也对也可以用c[i][j]=c[i-1][j]+c[i-1][j-1]来先预处理出所有的组合数#include<iostream>#inclu...原创 2018-04-03 16:25:20 · 185 阅读 · 0 评论 -
HDU--1173
题目链接这道题先考虑一维的为何要区中位数将所有的数分为两堆,左边一堆,右边一堆这时候如果选点,点如果往右移一下那么左边所有的点的距离+1同理向右边也是一样那么这时候取中间的就行,即令左右两边的点的个数都一样其实就是中位数这样拓展到二维就OK了#include<stdio.h>#include<iostream>#include<algorithm>usin...原创 2018-03-28 17:11:14 · 278 阅读 · 0 评论 -
51Nod - 1433
题目链接思路很简单如果是9的倍数,那么其各个位上的和也为9的倍数那么,5个9就能凑一个9的倍数而90的倍数只要在后面添一个0就行了#include<math.h>#include<stdio.h>#include<algorithm>int main(){ int n; scanf("%d",&n); int ans=0;...原创 2018-04-05 09:37:22 · 217 阅读 · 0 评论