4 条题解
-
5
#include <bits/stdc++.h> using namespace std; const int MODNUM = 1000000007; int n,ans,col[1000005],cnt[1000005]; int main() { cin >> n; for(int i = 1;i <= n;i++) { cin >> col[i]; } ans = 0; for(int i = 1;i <= n;i++) { ans = (ans+cnt[col[i]]) % MODNUM; cnt[col[i]]++; } cout << ans << "\n"; return 0; } //给你个东西:https://www.bilibili.com/video/BV1hq4y1s7VH/?spm\_id\_from=333.1350.jump\_directly&vd\_source=e20c317f7a321fc7e44f276ede29cf50
-
1
组合数学,和那个洛谷P3799很像。 当前这个颜色的旗帜数量超过2个,那么就是在这n个里面选取2个, 数学公式就是C(n,2)=n*(n-1)/2。
ll c(ll x)//求C(n,2)的函数 { return (x%mod1)*((x-1)%mod1)/2; } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; col[a[i]]++;//统计每一种颜色出现的个数 maxn=max(a[i],maxn);//求出最大值 } for(int i=1;i<=maxn;i++) { if(col[i]>=2)//超过2就用公式算,然后不同颜色是累加。 { sum+=c(col[i])%mod1; } } cout<<sum%mod1; return 0; }
-
-13
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 1204
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 1011
- 已通过
- 173
- 上传者