54 条题解
-
0什么东西 LV 10 @ 2009-08-23 10:50:43
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms容斥··
[red]
老是打30分的
可以试试尽量把longint改成int64! -
02009-08-23 12:15:06@
怎么个容斥法 = = 我不会。。。谁能给个标程啊啊啊 = =
豆粉是什么 = =
-
02009-08-23 09:42:11@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
[red]├ 测试数据 09:答案正确... 119ms
[red]├ 测试数据 10:答案正确... 119ms
暴力容斥! -
02009-08-23 08:59:38@
容斥,强旱!
-
02009-08-23 08:48:55@
请教大牛 这是怎么回事
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误... ├ 标准行输出 3648592...
├ 错误行输出 3646781...├ 测试数据 05:答案错误... ├ 标准行输出 3628439...
├ 错误行输出 3626959...├ 测试数据 06:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出├ 测试数据 10:答案错误... ├ 标准行输出
├ 错误行输出 -
02009-08-23 00:14:57@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
水题....
容斥原理的应用.. -
02009-08-23 00:08:42@
容斥原理
-
02009-08-22 23:58:35@
............
-
02009-08-22 11:57:25@
Orz
-
02009-08-19 15:29:23@
Orz
-
02009-08-19 11:04:52@
不会是可爱的8吧
-
-12016-08-29 16:39:32@
自认为代码写得很漂亮路过。。几乎是纯函数式程序,除了累加和输入没有副作用,思路真tm清晰。。
然而Python会TLE。。无脑改c++就可以107ms AC..无语
```c++
#include <bits/stdc++.h>
using namespace std;typedef long long LL;
inline LL gcd(LL a, LL b)
{
return b == 0 ? a : gcd(b, a%b);
}inline LL lcm(LL a, LL b)
{
return a/gcd(a, b)*b;
}inline LL num(LL a, LL b, LL c)
{
return a%c?b/c-a/c:b/c-a/c+1;
}inline LL two_num(LL a, LL b, LL c, LL d)
{
return max(0ll, num(a, b, c) - num(a, b, lcm(c,d)));
}LL dfs(LL li[], LL i, LL n, LL m, LL get, LL a, LL b)
{
if (i == n && m == 0)
return two_num(a, b, 8, get);
if (i == n || m < 0)
return 0;
return dfs(li, i+1, n, m, get, a, b) + dfs(li, i+1, n, m-1, lcm(get, li[i]), a, b);
}LL list_num(LL a, LL b, LL c[], LL n)
{
int k = 1, ans = 0;
for (int i = 1; i <= n; i++) {
ans += k*dfs(c, 0, n, i, 1, a, b);
k = -k;
}
return ans;
}int main()
{
LL n, a[20], x, y;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
cin >> x >> y;
cout << list_num(x, y, a, n) << endl;
return 0;
}最后,赞一下这道题!
-
-12009-10-01 09:45:54@
Flag Accepted
题号 P1629
类型(?) 数论 / 数值
通过 199人
提交 862次
通过率 23%
难度 1容斥加组合数=0ms AC
-
-12009-09-13 11:04:23@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms这题完全不需要64位整数,因为可能出现溢出的地方是判断a*b/gcd(a,b)和边界的大小
显然我们假设边界是X,X