ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214600 | #2809. 去发现新的最小公约吧 | STASISZHY | 100 | 108ms | 1436kb | C++11 | 1.8kb | 2024-11-20 19:58:00 | 2024-11-20 23:03:53 |
answer
// Problem: D. 去发现新的最小公约吧
// Contest: undefined - NOIP2024训练赛 10
// URL: http://www.noi.ac/contest/1162/problem/2809
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define PII pair<int, int>
using namespace std;
const int N = 2e5 + 10, M = 1e5 + 10, mod = 1e9 + 7, INF = 0x3f3f3f3f;
int n, m, q, ans;
int s[N], dp[N], p[N], cnt;
bool vis[N];
vector<int> v;
inline void init()
{
for(int i = 2; i <= M; i ++)
{
if(!vis[i]) p[++ cnt] = i;
for(int j = 1; i * p[j] <= M && j <= cnt; j ++)
{
vis[i * p[j]] = true;
if(i % p[j] == 0) break;
}
}
}
inline void getv(int x)
{
v.clear();
for(int i = 1; i <= cnt && x > 1; i ++)
{
if(x % p[i]) continue;
int sum = 0;
while(x % p[i] == 0) x /= p[i], sum ++;
v.push_back(p[i]);
}
if(x > 1) v.push_back(x);
// cout << "m = " << m << '\n';
// for(auto i : v) cout << i << ' ';
// cout << '\n';
}
inline int solve(int r)
{
int res = 0;
for(int st = 1; st < (1 << v.size()); st ++)
{
int mul = 1, flag = 0;
for(int i = 0; i < v.size(); i ++)
if((st >> i) & 1) flag ++, mul *= v[i];
int now = r / mul;
res += (flag % 2 ? now : -now);
}
// cout << "r = " << r << " ans = " << r - res << '\n';
return r - res;
}
signed main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int T; cin >> T;
while(T --)
{
cin >> n >> m; v.clear();
int now = __gcd(n, m);
n /= now, m /= now; getv(m);
// cout << m / (now - 1) << '\n';
// cout << solve(m, m) - solve(n - 1, m) << '\n';
// if(m > n) cout << solve(m) << '\n';
// else cout << solve(n + m) - solve(n - 1) - 1 << '\n';
cout << solve(n + m - 1) - solve(n - 1) << '\n';
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 2ms
memory: 1436kb
input:
100 8 4 6 2 5 2 5 1 4 4 3 6 2 2 7 8 8 7 10 7 4 2 6 6 1 10 10 4 10 5 4 1 7 4 1 2 8 6 1 7 1 4 7 4 3 10...
output:
1 1 1 1 1 1 1 4 6 6 1 1 4 1 1 1 2 1 2 6 2 2 4 6 1 1 6 2 1 2 2 1 6 4 1 4 1 2 2 2 4 1 1 4 1 2 6 2 6 2 ...
result:
ok 100 lines
Test #2:
score: 5
Accepted
time: 2ms
memory: 1436kb
input:
100 6 2 5 5 5 4 8 5 7 8 2 1 1 1 2 8 4 1 8 6 3 7 1 8 5 10 7 5 10 1 8 1 1 1 8 3 5 7 10 5 5 8 3 1 9 10 ...
output:
1 1 2 4 4 1 1 2 1 2 6 4 1 4 1 1 1 2 6 1 4 1 4 2 4 4 1 2 6 1 2 1 6 2 1 2 1 2 1 4 1 4 1 1 1 1 2 4 2 6 ...
result:
ok 100 lines
Test #3:
score: 5
Accepted
time: 2ms
memory: 1432kb
input:
100 236 591 570 152 211 246 425 284 417 411 226 543 288 381 897 378 20 532 711 277 34 734 70 255 750...
output:
392 2 80 140 136 360 126 36 108 276 366 32 8 360 480 156 160 200 18 12 264 180 946 700 36 28 40 260 ...
result:
ok 100 lines
Test #4:
score: 5
Accepted
time: 2ms
memory: 1432kb
input:
100 660 565 675 802 944 437 673 25 902 884 274 689 380 901 273 236 807 467 390 60 692 592 596 976 23...
output:
112 400 396 20 192 624 832 116 466 1 72 120 104 110 58 486 310 84 568 84 80 156 240 82 828 444 240 1...
result:
ok 100 lines
Test #5:
score: 5
Accepted
time: 2ms
memory: 1432kb
input:
100 854 59 565 564 467 216 670 462 138 150 907 217 249 167 539 865 530 621 670 837 329 443 122 228 6...
output:
58 184 72 120 20 180 166 688 396 540 442 36 96 28 148 128 84 42 660 400 2 352 132 156 24 192 880 52 ...
result:
ok 100 lines
Test #6:
score: 5
Accepted
time: 2ms
memory: 1436kb
input:
100 478 213 187 542 661 149 341 842 442 974 604 256 944 111 571 319 941 705 453 42 205 811 727 860 9...
output:
140 270 148 420 486 32 72 280 368 6 810 336 690 346 120 132 432 40 16 418 906 16 712 192 630 78 28 3...
result:
ok 100 lines
Test #7:
score: 5
Accepted
time: 2ms
memory: 1436kb
input:
100 2646495639 83073 7823694236 39102 881727324 40751 5863530312 76599 9543772391 54826 7121248446 9...
output:
27690 10584 40750 5672 26988 2300 18340 20736 91008 46656 5460 38304 41356 15624 29376 3044 29520 12...
result:
ok 100 lines
Test #8:
score: 5
Accepted
time: 2ms
memory: 1432kb
input:
100 806019626 27134 9014848910 45923 4669150950 62049 1308235830 62695 5818631975 39455 9158335197 7...
output:
13566 43488 18144 12538 606 25920 10656 692 976 10512 432 708 28152 10368 14160 1248 2008 37584 5280...
result:
ok 100 lines
Test #9:
score: 5
Accepted
time: 3ms
memory: 1432kb
input:
100 6554053173 22625 8911041785 51685 4277406929 90205 9387326879 63230 2818802968 71777 3597527462 ...
output:
18000 10336 72160 25288 71776 70840 8360 81438 42228 21060 9700 82 23052 10208 5880 7740 75768 9504 ...
result:
ok 100 lines
Test #10:
score: 5
Accepted
time: 3ms
memory: 1432kb
input:
100 6459050216 95926 2862928574 67445 6637029072 36117 7180652465 82640 7389019538 14217 9372556634 ...
output:
47962 44160 8024 8256 8112 28476 1680 184 91680 38840 22452 8176 24150 50112 38566 396 23688 726 880...
result:
ok 100 lines
Test #11:
score: 5
Accepted
time: 9ms
memory: 1432kb
input:
100 4045462519 6079203834 3592763471 4209040120 867154445 2049504817 3901368197 9681318674 579119579...
output:
1838452000 1679610240 2049504816 4840659336 3936988800 290668728 334972928 635791104 296681040 19876...
result:
ok 100 lines
Test #12:
score: 5
Accepted
time: 7ms
memory: 1432kb
input:
100 9123862244 9980053608 7985310706 2228386162 7603155722 8812166405 5630356584 4148773838 21142841...
output:
117036744 1061736480 6042628368 1885160760 186161484 15574716 2154381984 1451760720 4390921520 73304...
result:
ok 100 lines
Test #13:
score: 5
Accepted
time: 6ms
memory: 1432kb
input:
100 7426491555 2763484756 5457391985 6457160532 534914118 1572249269 2775997991 3809315223 888272698...
output:
1351638240 2029832448 1548782796 2082060288 862570548 8859492544 3089763600 540984288 9420766512 340...
result:
ok 100 lines
Test #14:
score: 5
Accepted
time: 9ms
memory: 1432kb
input:
100 9075853678 102993875 3010884417 2979594557 5930330168 4871508518 7600226984 8940737887 118514897...
output:
81259200 2979594556 2432911216 8921426976 766488800 1094959296 1766386800 4780323840 320288736 32923...
result:
ok 100 lines
Test #15:
score: 5
Accepted
time: 9ms
memory: 1436kb
input:
100 4021096645 5084700743 2505598974 4226942433 2028384176 2927433426 6560727784 4700774690 85539163...
output:
5084700742 1189168128 975811140 1880043120 1501398720 2622853120 4345506000 4710017280 2500801776 78...
result:
ok 100 lines
Test #16:
score: 5
Accepted
time: 9ms
memory: 1436kb
input:
100 5394932023 3200344581 8199663693 1374607804 3913573573 1880621978 4329635001 2811700871 25796777...
output:
1828768320 687121200 940178880 2408901120 537165432 3930587136 4972881152 2088039744 6420971520 1684...
result:
ok 100 lines
Test #17:
score: 5
Accepted
time: 9ms
memory: 1436kb
input:
100 4421181565 7950164025 7271383279 1281340308 6720617512 8240572244 5246156506 2633726799 44108925...
output:
841543040 424876480 2025225324 1506816000 4567127760 1220459298 488237026 4817552480 3011788800 7978...
result:
ok 100 lines
Test #18:
score: 5
Accepted
time: 9ms
memory: 1432kb
input:
100 64792226 2094307560 9263645727 6840282932 498184184 7131019629 1288538432 4944555527 6572306238 ...
output:
277689600 488443392 4740390576 4942705800 2825360928 786164256 944472672 729907200 9763287936 187931...
result:
ok 100 lines
Test #19:
score: 5
Accepted
time: 9ms
memory: 1436kb
input:
100 6673224472 4793077122 343436275 556644377 4195412270 4516001680 5415513582 589610523 3988294799 ...
output:
1597692372 556594896 225692208 194510592 3799984104 2110182480 6360951744 123869984 5499574380 13232...
result:
ok 100 lines
Test #20:
score: 5
Accepted
time: 10ms
memory: 1432kb
input:
100 4194270818 7289820928 7777260632 7890730149 3249835305 2579410381 3029031009 7280770225 70482421...
output:
1594644480 4812521472 2560582432 5823738320 4389534912 128653200 3138952872 1129075200 4383838272 19...
result:
ok 100 lines