BestCoder Round #80 1002
HDU 5666 Segment 
题意:给你条斜率为-1,常数项为q(q为质数)的直线,连接原点与直线上整数格点,问你在有多少个格点在形成的无数个三角形内,而不在线段上,结果对P取模。
思路:bestcoder题解上有思路,一条以(0,0)为起点,(x,y)为终点的线段上格点的个数(不包含端点时),一定是gcd(x,y)−1,题目由于p为质数,所以所有线段上都没有格点,需要注意的是p为质数,情况就很少了,然后就是数据太大的问题,改一改快速幂就可以了。
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int maxn = 100005;
long long p,q;
long long sum;
long long powf(long long a, long long b)
{
    long long r = 0, base = a;
    while(b)
    {
        if(b&1)
            r = (r + base) % q;
        base = (base + base) % q;
        b >>= 1;
    }
    return r;
}
int main()
{
    int t;
    cin >> t;
    while(t--){
        cin >> p >> q;
        if(p&1) sum = powf(p/2, p-2);
        else sum = powf(p/2-1, p-1);
        cout << sum << endl;
    }
    return 0;
}
BestCoder Round #80 1002的更多相关文章
- 暴力+降复杂度 BestCoder Round #39 1002 Mutiple
		
题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...
 - 矩阵快速幂---BestCoder Round#8 1002
		
当要求递推数列的第n项且n很大时,怎么快速求得第n项呢?可以用矩阵快速幂来加速计算.我们可以用矩阵来表示数列递推公式比如fibonacci数列 可以表示为 [f(n) f(n-1)] = [f(n ...
 - hdu 5667 BestCoder Round #80 矩阵快速幂
		
Sequence Accepts: 59 Submissions: 650 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536 ...
 - 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
		
题目传送门 /* 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 当然有可能两个数和超过p,那么an的值最优,每 ...
 - Manacher BestCoder Round #49 ($) 1002 Three Palindromes
		
题目传送门 /* Manacher:该算法能求最长回文串,思路时依据回文半径p数组找到第一个和第三个会文串,然后暴力枚举判断是否存在中间的回文串 另外,在原字符串没啥用时可以直接覆盖,省去一个数组空间 ...
 - 二分图判定+点染色/并查集 BestCoder Round #48 ($) 1002 wyh2000 and pupil
		
题目传送门 /* 二分图判定+点染色:因为有很多联通块,要对所有点二分图匹配,若不能,存在点是无法分配的,no 每一次二分图匹配时,将点多的集合加大最后第一个集合去 注意:n <= 1,no,两 ...
 - hdu 5195 DZY Loves Topological Sorting  BestCoder Round #35 1002 [ 拓扑排序 + 优先队列 || 线段树 ]
		
传送门 DZY Loves Topological Sorting Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131 ...
 - BestCoder Round #56 1002 Clarke and problem  1003 Clarke and puzzle (dp,二维bit或线段树)
		
今天第二次做BC,不习惯hdu的oj,CE过2次... 1002 Clarke and problem 和Codeforces Round #319 (Div. 2) B Modulo Sum思路差不 ...
 - BestCoder Round #92 1002 Count the Sheep —— 枚举+技巧
		
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1002 题解: 做题的时候只是想到 ...
 
随机推荐
- eclipse中ctrl+h默认打开是JavaSearch,怎么设置成默认打开是FileSearch
			
window->preferences->General->keys. 找到File Search(有搜索框的,可以搜索),然后在下方 Binding按下ctrl +h .
 - NOIP2016滚粗计
			
啦啦啦,第一次写游记~ Day0 早上浪浪浪,开了几盘CS 坐车到衢州,在车上开了几盘 艾萨克,然而好困啊…… 到衢二后围观XJ杭二合力A ztr,不是很懂为什么事情会变成这样 晚上开杀人游戏,wcz ...
 - list操作
			
1.查看列表属性 >>> a = [1,2] >>> dir(a) ['__add__', '__class__', '__contains__', '__dela ...
 - POJ 2226二分图最大匹配
			
匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是二部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图 ...
 - C语言 活动安排问题之二
			
有若干个活动,第i个开始时间和结束时间是[Si,fi),活动之间不能交叠,要把活动都安排完,至少需要几个教室? #include <stdio.h> #include <string ...
 - Intent
			
1.http://blog.csdn.net/daogepiqian/article/details/50606474 2.http://blog.csdn.net/wulianghuan/artic ...
 - nodejs中npm常用命令
			
npm install <name>安装nodejs的依赖包 例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本, ...
 - 基于log4net的帮助类Log
			
using log4net; using System; using System.Collections.Generic; using System.Diagnostics; using Syste ...
 - The note of Vue.js
			
In computed field, increment operator is not supported.
 - Splinter学习——不仅仅是自动化测试哦
			
前两天,想抢购一个小米MIX,结果,一开始抢就没有了.于是想,作为程序猿,总得有点特殊手段吧,比如说一个小脚本.最近在学习python,百度了一下,发现了Splinter这个强大的东东!用了不到两小时 ...