codeforces 703E Mishka and Divisors
codeforces 703E Mishka and Divisors
題面
給出大小為\(1000\)的數組和一個數\(k\),求長度最短的一個子序列使得子序列的元素之積是\(k\)的倍數,如果有多個解輸出元素和最小的序列。
\(k\)和數組元素的數量級都是\(1e12\)。
題解
\(f[i][d]\)表示前\(i\)項是\(d\)的倍數的最優解。因為\(d\)只可能是\(k\)的因數,所以離散化一下\(k\)的因數即可。
過程中需要多次求\(gcd\),直接求會超時。需要先預處理\(b[i]=gcd(a[i], k)\),那麽\(gcd(a[i], k/d) -> gcd(b[i], k/d)\)
codeforces 703E Mishka and Divisors
相關推薦
codeforces 703E Mishka and Divisors
gcd 過程 處理 元素 大小 多次 -a 超時 可能 codeforces 703E Mishka and Divisors 題面 給出大小為\(1000\)的數組和一個數\(k\),求長度最短的一個子序列使得子序列的元素之積是\(k\)的倍數,如果有多個解輸出元素和最小
codeforces 703D Mishka and Interesting sum 偶數亦或 離線+前綴樹狀數組
rmi data 一個 day 得到 地方 operator 每一個 思路 題目傳送門 題目大意:給出n個數字,m次區間詢問,每一次區間詢問都是詢問 l 到 r 之間出現次數為偶數的數 的亦或和。 思路:偶數個相同數字亦或得到0,奇數個亦或得到本身,那麽如果把一段區間暴力亦
Codeforces 703A Mishka and Game
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <math.h> #include <string> using namespace s
codeforces D. Mishka and Interesting sum 求區間內不同數的異或值
Little Mishka enjoys programming. Since her birthday has just passed, her friends decided to present her with array of non-negative integersa1, a2, ...,
Codeforces Round #365 (Div. 2) D - Mishka and Interesting sum(離線樹狀數組)
turn string 之前 algorithm printf ace r++ void contest http://codeforces.com/contest/703/problem/D 題意: 給出一行數,有m次查詢,每次查詢輸出區間內出現次數為偶數次的數字的異
【Codeforces 342A】Xenia and Divisors
using div size sync .com problems [1] 題解 efi 【鏈接】 我是鏈接,點我呀:) 【題意】 【題解】 最後a,b,c只有以下3種情況 1,2,4 1,2,6 1,3,6 那麽用cnt[8]統計每個數字出現的次數. 輸出
Educational Codeforces Round 56 (Rated for Div. 2) C - Mishka and the Last Exam(貪心/差分約束)
題意 給一個n,一個序列b[], bi=ai+a(n+i-1), 求不降序的a序列[] 思路來源 組裡各神犇&&自己 題解 Solution1: 顯然a1=0,an=b1的時候,區間長度最長 區間裡面內建區間的時候如果內區間能左對齊,顯
【Codeforces Round 365 (Div 2)D】【離線詢問 樹狀陣列 前驅思想】Mishka and Interesting sum 區間內出現次數偶數的數的異或和
Little Mishka enjoys programming. Since her birthday has just passed, her friends decided to present her with array of non-negative integersa1, a2, ...,
Codeforces Round #365 (Div. 2) Problem D.Mishka and Interesting sum 解題報告
題目連結:Here! 題目大意:給你n個數,然後m次查詢,每一次查詢輸出所有在給定區間內出現偶數次數的數的異或值,如果只有一個出現偶數次數的數,則直接輸出該數,如果沒有出現偶數次數的數,則輸出0。 解題思路:看到區間查詢,第一反應是線段樹,但是用線段樹來統計區間內出現次數為
codeforces 798C Mike and gcd problem
opera can sample pan using str ssl else font C.Mike and gcd problem Mike has a sequence A?=?[a1,?a2,?...,?an] of length n. He cons
CodeForces 321A Ciel and Robot(數學模擬)
ont amp force 等於 return printf print -- 題意 題目鏈接:http://codeforces.com/problemset/problem/321/A 題意:在一個二維平面中,開始時在(0,0)點,目標點是(a。b),問能不能通過反
Codeforces 794F. Leha and security system 線段樹
log pda 小技巧 ext for names 區間和 tac ant F. Leha and security system Bankopolis, the city you already know, finally go
CodeForces 785C Anton and Fairy Tale
valueof ava def log compareto urn port () [] 二分。 如果$n≤m$,顯然只能$n$天。 如果$n>m$,至少可以$m$天,剩余還可以支撐多少天,可以二分計算得到,也可以推公式。二分計算的話可能爆$long$ $l
CodeForces 785D Anton and School - 2
tdi continue article map ces java code detail ans 枚舉,容斥原理,範德蒙恒等式。 先預處理每個位置之前有多少個左括號,記為$L[i]$。 每個位置之後有多少個右括號,記為$R[i]$。 然後枚舉子序列中第一個右括號的位
CodeForces 785E Anton and Permutation
中比 交換 %d 暴力 每次 一個 con brush names 分塊,暴力。 將序列分成$sqrt(n)$塊,每塊$sqrt(n)$個元素,每塊內排序。 每次操作要計算這個區間中比$a[p1]$大的有幾個,小的有幾個,比$a[p2]$大的有幾個,小的有幾個,端點的塊
CodeForces 785A Anton and Polyhedrons
pac cst mat () ant algo ring light str 簡單判斷。 分別判斷每個單詞是幾面體,加起來就是答案。 #include <cstdio> #include <cmath> #include <cstr
Codeforces 763A. Timofey and a tree
brush ret force oid clas print ext etc ans A. Timofey and a tree 題意:給一棵樹,要求判斷是否存在一個點,刪除這個點後,所有連通塊內顏色一樣。$N,C \le 10^5$ 想法:這個叫換根吧。先求出一個點合
Codeforces 425A Sereja and Swaps(暴力枚舉)
stdio.h acc 題目 operator priority main bool article continue 題目鏈接:A. Sereja and Swaps 題意:給定一個序列,能夠交換k次,問交換完後的子序列最大值的最大值是多少 思路:暴力枚舉每一個區間
Codeforces 558C Amr and Chemistry 全都變相等
== 求一個 時間 asi 次數 定義 space 思想 %d 題意:給定一個數列,每次操作僅僅能將某個數乘以2或者除以2(向下取整)。求最小的操作次數使得全部的數都變為同樣值。
Codeforces 821C Okabe and Boxes
做到 cnblogs 彈出 sta 分享 一次 har mov res 題意: 給定一個n,然後有2n個指令,分別是add x, remove, add x 就是將x加入到棧中, remove 就是從棧頂移除, 然後移除的元素一定要有序, 不然就需要resort(重排)一次