1. 程式人生 > >luogu P3868 [TJOI2009]猜數字

luogu P3868 [TJOI2009]猜數字

題意:

求一個最小的n,使得∀i,bi|(n-ai)。

思路:

考慮化簡:bi|(n-ai)。

式子等價於 (n-ai) mod bi=0

發現就是一個線性同餘方程組(因為題目滿足b陣列兩兩互質,用中國剩餘定理也可以,但題解說要用快速乘,不然只有90分)的模板。

程式碼:

#include<cstdio>
#define LL long long
	int n;
	LL a[20],r[20];
	LL x,y;
LL exgcd(LL a,LL b,LL &x,LL &y)
{
	if(!b)
	{
		x=1;
		y=0;
		return a;
	}
	LL tmp=exgcd(b,a%b,y,x);
	y-=a/b*x;
	return tmp;
}
int main()
{
	LL a1,m1;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	for(int i=1;i<=n;i++)
		scanf("%lld",&r[i]);
	a1=a[1]%r[1],m1=r[1];
	for(int i=2;i<=n;i++)
	{
		LL A=m1,B=r[i],C=(a[i]-a1)%r[i],k=exgcd(A,B,x,y),p=B/k;
		x=(x%p*(C/k)%p+p)%p;
		a1+=x*m1;
		m1*=r[i]/k;
	}
	printf("%lld",a1);
}

相關推薦

luogu P3868 [TJOI2009]數字

題意:求一個最小的n,使得∀i,bi|(n-ai)。思路:考慮化簡:bi|(n-ai)。式子等價於 (n-ai) mod bi=0發現就是一個線性同餘方程組(因為題目滿足b陣列兩兩互質,用中國剩餘定理也可以,但題解說要用快速乘,不然只有90分)的模板。程式碼:#include

P3868 [TJOI2009]數字

printf max [1] tps else return 代碼 uid mat 中國剩余定理的模板題。 雖然說是CRT的模板,但是我不會CRT啊。我只會EXCRT 思路很清晰,都寫在註釋裏面了。不懂的話看看我前面寫過的一篇模板題的隨筆。 PS:很榮幸能夠幫到@niiic

CRT【p3868】[TJOI2009]數字

Description 現有兩組數字,每組k個,第一組中的數字分別為:a1,a2,...,ak表示,第二組中的數字分別用b1,b2,...,bk表示。其中第二組中的數字是兩兩互素的。求最小的非負整數n,滿足對於任意的i,n - ai能被bi整除。 Input 輸入資料的第一行是一個整數k,(

[Luogu3868] [TJOI2009]數字

eof 標識 const turn ongl 一行 pri stdin reg 題目描述 現有兩組數字,每組k個,第一組中的數字分別為:a1,a2,...,ak表示,第二組中的數字分別用b1,b2,...,bk表示。其中第二組中的數字是兩兩互素的。求最小的非負整數n,

數字遊戲--查看歷史記錄

dump span utf style col pri 就會 tor 再次 猜數字遊戲,就是隨機生成一個數字,猜這個數字的大小,輸入的值會有提醒比真值大還是小。這個新是說通過加入隊列來實現了可以查看之前輸入過得值。 1 # encoding = utf-8 2 fro

JavaScript一個數字遊戲

通過 mage cnblogs 方法 fun else if dom innerhtml random 效果圖: 代碼: <body> <script type="text/javascript"> window.onload = newgame

Linux中數字shell腳本

shell腳本 linux shell 猜數字遊戲 利用Linux系統中的時間秒1-59來進行猜數字遊戲,詳細代碼如下:#!/bin/bash #author wangning #date 2017-7-15 #qq 1198143315 #Email [email protected]

數字遊戲的提示

image images 思路 mes cst () font 題目 blog 題目來自劉汝佳編著的《算法競賽入門經典(第二版)》 題目描述: 我的代碼: #include<iostream> #include<cstring

通過遊戲學python 3.6 第一季 第三章 實例項目 數字遊戲--核心代碼--猜測次數--隨機函數和屏蔽錯誤代碼--優化代碼及註釋 可復制直接使用 娛樂 可封裝 函數

nbsp 退出 而不是 判斷 and 封裝 except 次數 img 1 #猜數字--核心代碼--猜測次數--隨機函數和屏蔽錯誤代碼---優化代碼及註釋 2 3 import random 4 number = random.randint(1,

通過遊戲學python 3.6 第一季 第九章 實例項目 猜數字遊戲--核心代碼--猜測次數--隨機函數和屏蔽錯誤代碼--優化代碼及註釋--簡單賬號密碼登陸--賬號的註冊查詢和密碼的找回修改--鎖定賬號--鎖定次數--菜單功能'menufile

lock isp 無限循環 lis true 條件判斷 elif bre format 通過遊戲學python 3.6 第一季 第九章 實例項目 猜數字遊戲--核心代碼--猜測次數--隨機函數和屏蔽錯誤代碼--優化代碼及註釋--簡單賬號密碼登陸--賬號的註冊查詢和密碼的

練習題 --- 數字遊戲

ges 技術分享 mage alt 一個 images nbsp src 題目 題目: 由一個人隨機寫一個整數1-99 每次輸入一個數字,若沒有猜對,則縮小數字範圍。 直到猜對數字為止。遊戲結束 我的答案 實現結果 練習題 --- 猜數字遊戲

JS---數字(0-100)

cnblogs log for 數字 col rom utf-8 clas else <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8">

js_數字

是否為數字 parse doc 是否 inner rand isnan get har <!DOCTYPE html><html><head><meta charset="UTF-8"><title>猜數字<

實驗任務五:數字遊戲

new pub roman 一個 截圖 輸入 class () blog 猜數字遊戲 程序設計思想:想讓猜數字這個遊戲可以成功編譯並運行,首先它的遊戲思維是簡單的,系統先自動生成一個1~100之間的數字,然後由用戶進行猜測,用一個循環,當猜的數字不一樣時,提醒用戶猜大或猜小

java 實現數字遊戲 隨機給定一個數字大小直到正確

個數字 blog spa 猜數字 style ring imp code ont package com.swift; import java.util.Random; import java.util.Scanner; public class GuessBigSm

數字遊戲實現過程

logs 數字遊戲 實現 oid 存在 scanner 最終 輸出 eth 一、程序設計思想: 1.使用(int)(Math.Random()*100+1)設置1~100的隨機整數。 2.用戶輸入值與隨機數作比較,若不相等,則進入while循環並判斷大小關系,繼續猜。 3.

數字遊戲設計

ext style tex 總結 對話 思路 輸入 es2017 block 程序題目: 設計思路: 定義相關內容 是計算機產生隨機數,然後用對話框進行相應的輸入輸出操作,運用if...else和while循環進行判斷猜的數字是大還是小直至結果一樣即可。 流程圖:

java小遊戲-數字

stat next equal pan () 1-1 main alt pre 程序設計思路 隨機產生一個1-100的隨機數字。 用戶輸入一個數字,然後做判斷並輸出判斷結果。 用戶根據判斷結果再次決定要輸入的數字。 重復上面兩步,直到用戶輸入正確或者用戶放棄輸入。 程序流程

數字

es2017 com import logs public sca 程序代碼 結果 tint 1.程序設計思想 (1)產生一個1至100之間的數 (2)通過循環實現正確數字的輸入 (3)判斷輸入的數與隨機產生的數的大小關系 (4)通過循環直至猜出正確數字 2.程序流程圖

驗證碼和數字

etl clas and 定義 visible 登錄 功能 number image 實驗任務四 1,出現設計思想 (1)先定義文本框、密碼框和驗證碼框的組件 (2)定義面板和按鈕的個數 (3)定義公有的虛構方法,通過對象實例化來調用 (4)利用Random類來實現生成0-