JNU第三場訓練賽題解

2021-08-17 03:16:25 字數 1828 閱讀 6662

#include#includeusing namespace std;

int a[150];

int main()

for(int i=1;i<=n;i++)

printf("%d",a[i]);

puts("");

}

埃氏700ms,線篩231ms

#include#include#includeusing namespace std;

int pri[1300000];

int isp[22000001];

int p=0;

void init(int n)//線性篩 237ms 對每個最大因子i列舉最小素因子,篩其乘積,無重複篩 o(n)

}} int initpp(int n) //尤拉篩 700ms 篩去素數的倍數 ,有重複篩,比如6=2x3 o(nloglogn)

for(int i=1;i<=n;i++)

for(int i=1;i<=k;i++)

;mat operator *(mat a,mat b)

return res;

}mat qmod(mat a,ll b)

return res;

}void init(mat &mmm)

int main()

mat c=qmod(a,k);

ll ans=0;

for(int i=1; i<=n; i++)

}cout《分別預處理d(i),f(i)然後跑一遍即可,預處理最大,最小質因子都可以直接花式埃篩,最小質因子用線性篩最快

複雜度o(n+nloglogn+n),o(n+nloglogn+nlogn)也能過

e把預處理素數後對每個數sqrt(i)找di,fi的做法卡掉了

216ms

#include#include#includeusing namespace std;

#define ll long long

int pri[1000000];

int isp[5000001];

int p=0;

int dd[5000005];

void initline(int n)//min p on 線篩找最小質因子,不會這個寫init2也能過。

for(int j=1;j<=p&&i*pri[j]<=n;j++)

}} int d[5000005];

void init2(int n)//min p onlogn

}int f[5000005];

void init(int n)//max p onloglogn

}int main()

{// freopen("5.txt","r",stdin);

// freopen("5.out","w",stdout);

int x;

cin>>x;

init(5000001);

// printf("%.2f\n", (double)clock()/clocks_per_sec);

init2(5000000);

// printf("%.2f\n", (double)clock()/clocks_per_sec);

// initline(5000001);

// printf("%.2f\n", (double)clock()/clocks_per_sec);

ll ans=0;

// printf("%d %d",f[7],dd[7]);

for(int i=2;i<=x;i++)

ans+=1ll*(d[i]^f[i]);

cout<

HDU 多校訓練賽第三場之Fansblog

這道題主要就是運用了素數的乙個性質吧 應該沒錯了 prime n prime n 1 1 prime n 1 prime n 2 prime n 1 1 mod prime n 1 剩下的就是如何找給定素數p的前乙個素數q,這裡用了mr素性檢測 很煩,板子抄錯,無限wa t 並且算出來之後貌似還不是...

2023年度訓練聯盟熱身訓練賽第三場(IJ)

傳送門 題意 你有一輛輪胎會跑氣的自行車,打滿一次氣可以走的距離是d,一開始自行車的氣是滿的,城市中有 n 個點,你要從1點到 n 點,其中有 t 個點處可以給自行車打氣,你只能在自行車有氣的時候走,問從1到 n 的最短路 思路 先跑一遍floyd求出每兩點之間的最短路,然後重新構圖,兩個打氣點之間...

暑期個人賽 第三場 A

a.學姐的數碼管 2014新生暑假個人排位賽03 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 學姐的七段數碼管玩的出神入化。現在給你乙個浮點數,你需要把它以七段數碼管的形式輸出出來。乙個 2 n 1 n的矩陣來表示七段數碼管,若下標均從0開始,則以第0列的兩個,第n 1列的兩個...