poj 3292 (字首和)
就是素數篩選,但是乘積重複的只算一個;
程式碼如下
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int maxn=1000005; int prime[maxn]; bool is_prime[maxn]; int ans[maxn]; void solve() { int p=0; memset(is_prime,true,sizeof(is_prime)); for(int i=5;i<maxn;i+=4){ if(is_prime[i]){ prime[p++]=i; for(int j=2*i;j<maxn;j+=i) { if((j-1)%4==0) is_prime[j]=false; } } } for(int i=0;i<p;i++){ if(prime[i]>10000) break; for(int j=i;j<p;j++){ int temp=prime[i]*prime[j]; if(temp>maxn) break; ans[temp]=1; } } for(int i=0;i<maxn;i++) ans[i]+=ans[i-1]; } int main() { solve(); int h; while(~scanf("%d",&h)){ if(h==0) break; else printf("%d %d\n",h,ans[h]); } }
相關推薦
poj 3292 (字首和)
就是素數篩選,但是乘積重複的只算一個; 程式碼如下 #include<cstdio> #include<iostream> #include<cstring> #
codeforces873B Balanced Substring(字首和)
/* 字首和 題意:給定一個01串,求0的個數和1的個數相同的子串最大長度 預處理原來的字串,1表示1,0表示-1 依次計算處理過的字串的字首和,如果某個字首和以前出現過, 那麼會對答案產生影響;如果是第一次出現,記錄下這個位置 */ #include <cstdio> #i
51nod1081 子段求和(字首和)
/* 樹狀陣列求字首和 */ #include <cstdio> #include <iostream> #include <cstring> #include <cmath> using namespace std; typedef lo
洛谷1314 聰明的質監員(二分)(字首和)
題目 洛谷1314 聰明的質監員 題解 二分+字首和 很顯然滿足二分性,隨著W的增大,Y會變小,我們要找的是一個abs(S-Y)最小的值。 一開始,我想著把abs拆開來看,討論min(W-Y)和min(Y-W)。後來發現一個更牛逼的做法,只要一次二分,因為是要與S做
鐳射炸彈(字首和)
1218: [HNOI2003]鐳射炸彈Time Limit: 10 Sec Memory Limit: 162 MB Description 一種新型的鐳射炸彈,可以摧毀一個邊長為R的正方形內的所有的目標。現在地圖上有n(N<=10000)個目標,用整數Xi,Yi(其值在[0,5000])表示
2018.10.02 NOIP模擬 聚會(字首和)
描述 在成都的一條街道上,一共有 N戶人家,每個家庭有 Xi 個人,他們和諧的生活在 一起,作為全國和諧街道,他們經常會小範圍組織活動,每次活動會選擇一戶作為聚點, 並要求某些家庭參加,為了方便通知,村
2018.10.02【校內模擬】聚會(字首和)
【描述】 在成都的一條街道上, 一共有 N 戶人家,每個家庭有 Xi 個人,他們和諧的生活在 一起,作為全國和諧街道,他們經常會小範圍組織活動,每次活動會選擇一戶作為聚點, 並要求某些家庭參加,為了方便通知,村長每次邀請位置連續的家庭。因為每戶人數不 同,每個家
PAT 甲級 1044 Shopping in Mars (字首和)
1044 Shopping in Mars (25 分) Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond has a value (in
ZOJ-1704-To The Max (字首和)
原題: Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1 x 1 or g
51Nod1065 最小正子段和(字首和)
先求字首和,然後在排序,序列最小的和可能存在於相鄰的兩個數之差,關鍵在於如何判斷相鄰的兩個人能否構成序列。 比如-9 -2 8 7 6 字首和為-9 -11 -3 4 10 排序後:-11 -9 -3 -4 10 -11和-9就構不成序列,因為-9的下標在-11的前面. 當然
Codeforces 816B Karen and Coffee(字首和)
To stay woke and attentive during classes, Karen needs some coffee! Karen, a coffee aficionado, wants to know the optimal temperature for brewing
第八屆藍橋杯 k倍區間(字首和)
標題: k倍區間 給定一個長度為N的數列,A1, A2, ... AN,如果其中一段連續的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍數,我們就稱這個區間[i, j]是
poj 3292 (打表)
題意:有類似4n+1的數(1,5,9,13,17.......),其中只有1和自己本身2個因數叫H-質數,而由2個H-質數乘積 得到的是H-合數,求0-n中,H-合數的個數。比如25=5X5 而5只有1和5這2個因數。 #include<s
Codeforces Round #501 (Div. 3) E(字首和)
E2. Stars Drawing (Hard Edition) time limit per test 3 seconds memory limit per test 256 megabytes input standard input output sta
【ZOJ4054】2018ICPC青島賽區網路賽H Traveling on the Axis(字首和)
題目連結 【題意】 在[0,n]中每0.5處設定一個紅綠燈,0表示紅燈,1表示綠燈,如果在4.5處有紅燈,要從4到5,就要等1s,給出初始的紅綠燈狀態,每1s會改變狀態,即由紅燈變成綠燈,或綠燈變成紅燈,然後計算圖中表達式。 【解題思路】 可以手動模擬
POJ 2018(二分,區間平均數最大,字首和)
題目連結:http://poj.org/problem?id=2018 題意,給定一個非負序列,求長度大於F的連續子序列的平均數最大 解法:在實數上二分平均數mid,判斷a中是否有長度大於F平均數大於等
POJ 2566 Bound Found(字首和排序 + 尺取法)
題意:對一個長度為n的數列,做k次查詢,每次查詢一個數t,求原數列中的一個子區間[l, r],使得該子區間的和的絕對值最接近t。 思路:在原數列開頭新增一個0,處理好現數列a[N]的字首和pre[N]。則原問題轉化為在字首陣列中求2個數pre[i],pre
Bound Found(POJ-2566)(尺取法 and 字首和)
Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4727 Accepted: 1502 Special Judge Description Signals of
【題解】洛谷P1315 [NOIP2011TG] 觀光公交(字首和+貪心)
次元傳送門:洛谷P1315 思路 思路大概想到了 可是程式碼實現卻沒想到 所以參考題解了 D2T3的貪心果然有難度 我們考慮在每次用加速器有兩種情況 到下一個點還需要等待:以後的時間就不再影響了 到下一個點不需要等待:那麼就會影響到後面的時間直到出現情況1(或者到最後一個點) 用sum
【51nod 1103】【N的倍數】(字首和取餘)
題目: 一個長度為N的陣列A,從A中選出若干個數,使得這些數的和是N的倍數。 例如:N = 8,陣列A包括:2 5 6 3 18 7 11 19,可以選2 6,因為2 + 6 = 8,是8的倍數。 Input 第1行:1個數N,N為陣列的長度,同時也是要求的倍數。(2 <=