NOIP 考前 数论复习
POJ 2891
x=r1 (mod a1)
x=r2 (mod a2)
x=a1*x+r1,x=a2*y+r2;
a1*x-a2*y=r2-r1;
用Extend_Gcd求出m1*x+m2*y=d; d=Gcd(x,y);
那么就可以解出原来的x=(x*(r2-r1)/d)
那么代入原式r1=a1*x+r1 新的a1=lcm(a1,a2);
#include <cstdio>
#define LL long long
LL a1,a2,r1,r2,x,y,n;
LL Extend_Gcd(LL a,LL b,LL &x,LL &y)
{
if (b==) {x=,y=; return a;}
LL Ret=Extend_Gcd(b,a%b,x,y);
LL Tmp=x;
x=y; y=(Tmp-a/b*y);
return Ret;
}
int main()
{
// freopen("c.in","r",stdin);
while (scanf("%lld",&n)!=EOF)
{
scanf("%lld%lld",&a1,&r1); bool Ok=true;
for (LL i=;i<n;i++)
{
scanf("%lld%lld",&a2,&r2);
LL a=a1,b=a2,m=r2-r1;
LL d=Extend_Gcd(a,b,x,y);
if (m%d) Ok=false;
x=(((x*m/d))%(b/d)+(b/d))%(b/d);
r1=x*a1+r1;
a1=(a1*a2)/d;
}
if (Ok) printf("%lld\n",r1); else puts("-1");
}
return ;
}
POJ 2891
POJ 2407 欧拉函数
#include <cstdio>
int n;
int main()
{
while (scanf("%d",&n)!=EOF)
{
if (n==) break;
int Ans=; int Tmp=n;
for (int i=;i*i<=Tmp;i++)
if (n%i==)
{
Ans=Ans*(i-);
n=n/i;
while (n%i==) Ans=Ans*i,n=n/i;
}
if (n>) Ans=Ans*(n-);
printf("%d\n",Ans);
}
return ;
}
POJ 2407
NOIP 考前 数论复习的更多相关文章
- NOIP 考前 队列复习
BZOJ 1127 #include <cstdio> #include <cstring> #include <iostream> #include <al ...
- NOIP 考前 数据结构复习
BZOJ 1455 左偏树即可 #include <cstdio> #define LL long long ; struct Info{LL l,r,v,Dis;}Tree[Maxn]; ...
- NOIP 考前DP 复习
POJ 2533 最长不降子序列 #include <cstdio> ; int a[Maxn],Pos[Maxn],F[Maxn],n,Ans; inline int Max(int x ...
- NOIP 考前 Tarjan复习
POJ 1236 给定一个有向图,求: 1) 至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2) 至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 第一个就是缩点之后有多少 ...
- noip考前模板复习
网络流 Dinic(搭配飞行员) //Serene #include<algorithm> #include<iostream> #include<cstring> ...
- noip数论复习总结
(上不了p站我要死了,侵权度娘背锅) 勉勉强强算是把数论复习的差不多了. 总结一下吧. 其实数论的知识大部分是结合在一起的,勉强分类总结 组合数 求法 组合数的求法根据不同情况选用不同的方法 2.3都 ...
- Noip前的大抱佛脚----Noip真题复习
Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻 ...
- NOIP考前划水
NOIP考前划水 君指先跃动の光は.私の一生不変の信仰に.唯私の超電磁砲永世生き! 要开始背配置了? 3行不谢. (setq c-default-style "awk") (glo ...
- noip级别数论?
TAT快noip了才开始去接触数论(真心不敢学..)这里做一下整理吧(都是些定义之类的东西= =) 欧几里德:gcd(a,b)=gcd(b,a%b);具体证明见百科? 扩展欧几里德: 求a*x+b*y ...
随机推荐
- Linux 服务器IO模型 epoll
epoll模型 #include <unistd.h> #include <sys/types.h> /* basic system data types */ #includ ...
- c#实现远程操作svn
/// <summary> /// 本地svn服务器地址 /// </summary> private static string localSVN = Configurati ...
- 不同json如何使用jsonArray以及ajax如何取,实现读取新闻
jsp界面 <%@ page contentType="text/html;charset=gb2312"%><%@page import="org.j ...
- Mongodb创建数据库
基本语法 MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 实例 以下实例我们创建了数据库 coderschool ...
- vs 中统计代码行数
------解决方案--------------------b*[^:b#/]+.*$^b*[^:b#/]+.*$ ctrl + shift + F 查找选项勾选 正则表达式
- 【转】responseText,responseBody,responseXML差别
为了做ajax的代理,研究了下服务器端的xmlhttp和客户端ajax中的xmlhttp,做了个比较 由于我一直使用JavaScript作为Asp的教本语言,所以比较起来更清楚.服务器端的xmlhtt ...
- ROS机器人语音交互(一)
语音交互早期已经广泛应用在手机端,电脑端,随着技术的成熟,接口逐渐开放,ROS上老外搞的开源语音识别只支持英文,识别率还低. 国内语音识别技术已经相当成熟稳定.感谢ros小课堂的讲解,解决了自己的疑惑 ...
- PDA项目介绍
开发工具:Microsoft Visual Studio 2008 SDK: Windows Mobile 6 SDK 数据库: Oracle 开发语言:C#(3.5) 版本控制工具 ...
- java打jar包,引用其他.jar文件
大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...
- http://tool.oschina.net 在线API文档库java jquery ,php,很全的文档库
http://tool.oschina.net 1.6API文档(中文)的下载地址: ZIP格式:http://download.java.net/jdk/jdk-api-localizations ...