五一快乐题请教
2024-05-03 00:48:14
发布于:上海
我用同余的方法来求解,题目下面给的用例可以顺利通过。但是提交的时候所有用例都失败。
甚至不如暴力循环,暴力循环还能通过三个case,剩下均TLE。
求指导一下,是我题目理解有误,还是代码实现的不对。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,cnt=0;
int num;
int a[2023] = {0}; //余数数组,计算每个可能的余数同余元素个数
cin >> n;
for(int i = 1; i <= n;i++){ // 输入N个数字
cin >> num;
int idx = num % 2024; //按同余进行分组 ,且对应同余元素数量+1
a[idx]++;
}
//循环余数数组
for(int i = 0; i < 2024; i++){
if(a[i] > 1){
cnt += a[i] * (a[i] - 1) / 2; //如果有x个同余,那么满足条件的数对数量就是C(n,2)
}
}
cout << cnt;
return 0;
}
全部评论 10
考试期间,请不要交流答案
禁赛的注意事项:比赛中,禁止在在社区发布答案或题解。
比赛中,禁止与他人分享、交流或获取与比赛相关的解题信息。
违反上述规则,比赛奖励取消。首次违规禁言15天,二次违规禁言30天,三次违规封号(无法登录社区),情节严重者直接封号。如果是排位赛,将扣除排位分。所以请勿在考试期间交流答案,谢谢配合
2024-05-04 来自 浙江
2考试期间不要交流答案,反正这个方法我试过,好像不是很好用
2024-05-03 来自 浙江
2现在还是考试期间,不能交流答案。
2024-05-03 来自
2第一,你赶紧删了会被封 第二,等五月六号等别人发题解找问题 第三,现在还在比赛 第四,你也可以比赛结束再发
2024-05-03 来自 广东
1请删除
2024-05-04 来自 浙江
0哦好吧
2024-05-04 来自 广东
0提示:优化一下暴力for循环就行了
2024-05-04 来自 广东
0
建议快删,不然你就没了
2024-05-03 来自 江苏
1这题跟Atcode的一题一样的 ,链接:https://www.luogu.com.cn/problem/AT_abc200_c?contestId=161301 ,只是mod的数不一样
2024-05-03 来自 江苏
1代码有误,题目不对(我骗你的,现在是考试期间)
2024-05-03 来自 上海
11.数组开小了,2023的长度范围是 0 ~ 2022,你应该开成2024。
2.a数组请改成long long,因为在计算组合数的时候会爆int,所以cnt也要开long long。2024-05-07 来自 浙江
0cnt开long long 试试
2024-05-07 来自 广东
0桶也得开
2024-05-07 来自 广东
0
?
2024-05-06 来自 广东
0
有帮助,赞一个