HDU 5666 快速乘】的更多相关文章

Segment Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 360    Accepted Submission(s): 134 Problem Description Silen August does not like to talk with others.She like to find some interesting pr…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5666 题意:给一条直线x+y=q,在(0,0)往x+y=q上面的整数点连线,x+y=q与x,y轴截成的三角形内部,有多少个整数点,除了直线上的点,q是指数. 思路:首先两点之间的整数点有个公式,设A(x1,y1),B(x2,y2),整数点的个数即为gcd(|x1-x2|,|y1-y2|)-1;注意到三角形是一个等腰直角三角形并且三角形在第一象限,所以假设直线x+y=q上面的一个点,C(x,q-x);那么…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3089 题目大意:一共n人.从1号开始,每k个人T掉.问最后的人.n超大. 解题思路: 除去超大的n之外.就是个约瑟夫环的裸题. 约瑟夫环递推公式,n为人数,k为步长. f(1)=0 f(n)=[f(n-1)+k]%i  i∈[2,n] f(n)还要经过起始位置修正,设起始位置为s,即ans=[f(n)+s]%n. 基本约瑟夫环优化就是当k=1的时候,每次递推就是在+1,可以直接算出来快速跳过,f(…
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5666 bc(中文):http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=688&pid=1002 题解: 首先可以统计出三角形内所有的点数,(q-2)+(q-3)+...+1=(q-1)*(q-2)/2 其次只要减去被线段割到的点,对于线段xi+yi=q,割到的点有gcd(xi,yi)-1=gcd(xi,q…
题目:这里 题意:在线段x+y=q与坐标轴围成的三角形中,求有多少个坐标为整数的点,答案模上p. 很容易就想到最后答案就是((q-1)*(q-2))/2然后模上p就是了,但是这个数字比较大,相乘会爆long long,于是用二进制的乘法,类似于快速幂,另外注意这个除以2得在 之前就处理了,因为最后答案一定要是个准确的整数. #include<cstdio> #include<cstring> #include<iostream> #include<algorith…
求n^n的个位 Sample Input 2 3 4 Sample Output 7 6 直接快速幂了,注意要用long long #include<cstdio> long long quick_mod(long long a,long long b,long long m) { ; while (b) { ) { ans = (ans * a) % m; b--; } b/=; a = a * a% m; } return ans; } int main() { int t,n; scan…
/** 大意: 求[a,b] 之间 phi(a) + phi(a+1)...+ phi(b): 思路: 快速求欧拉函数 **/ #include <iostream> #include <cstring> using namespace std; #define Max 3000000 ]; ]; ]; void init() { ; memset(flag,,sizeof(flag)); phi[]=; ;i<=Max;i++)//欧拉筛选 { if(flag[i]) {…
---恢复内容开始--- 题目链接: https://vjudge.net/problem/1812693/origin 这题的mod运算很恶心,真的... 本题有正反两个思路,一个是正面求解其不能成立的情况, 一个是反面求解,用total减. 我用的是正面求解. 一共有种情况: 1. 全是球 :poww(2, a)*poww(2,c)-1 2. 全是拍 : poww(2, a)*poww(2, b)-1 3. 一拍多球(2种可能):    1 -- (poww(2, a)*poww(2, c)…
就是以那个ai为分水岭,左边和右边都分别是单调增或单调减如图         就这四种情况,其中头两种总共就是两个序列,也就是从头到尾递增和从头到尾递减.         后两种方式就是把序列中德数分为左右两派,分完以后左右两边各自内部的排法就已经确定了,至于ai早就确定了(不是全局最大就是全局最小),而除了ai的每一个数都有选择在左或是在右两种选择,所以是2^(n-1),总共就是2^n,而这里包括了前两种的方案,所以要-4,最终应有2^n-2种.         看数据范围就知道要用快速幂,不…
Beijing 2008 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Total Submission(s): 741    Accepted Submission(s): 291 Problem Description As we all know, the next Olympic Games will be held in Beijing in 2008. So the…