当前位置: 首页 > wzjs >正文

北京建设局网站徐州seo推广优化

北京建设局网站,徐州seo推广优化,全球游戏制作公司排名,朔州企业网站建设题目背景 上道题中,小 Y 斩了一地的木棒,现在她想要将木棒拼起来。 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 1097 取模。 输入格式 第一行一个整数 n。 第…

题目背景

上道题中,小 Y 斩了一地的木棒,现在她想要将木棒拼起来。

题目描述

有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法?

答案对 109+7 取模。

输入格式

第一行一个整数 n。

第二行往下 n 行,每行 1 个整数,第 i 个整数 ai​ 代表第 i 根木棒的长度。

输出格式

一行一个整数代表答案。

输入输出样例

输入 #1复制

4 
1
1
2
2

输出 #1复制

1

说明/提示

数据规模与约定
  • 对于 30% 的数据,保证 n≤5×103。
  • 对于 100% 的数据,保证 1≤n≤105,1≤ai​≤5×103

        卡了好长时间终于AC了呜呜呜。

题目分析

        这道题不能使用dfs枚举每一种情况会超时,别问我怎么知道的。

        改变思路,我们侧重于题目本身进行分析。要想利用4个木棒得到一个正三角形,首先得有两个相同的木棒,并且这个长度的木棒会比另外两个木棒的长度长。我们合理使用数组来存储每个长度木棒的数量,将数组a开到满足题目的最大值。

        从大到小进行遍历,如果它的值a[i]大于等于2,则在1到i/2的范围内寻找满足题目情况的值。

        这里使用到的还是重要的组合公式。两种物品分别有m和n个,每种里面都选择一种,则有m * n种组合。

这里给出一种关于没有顺序的cnm的计算代码(边乘边除法):

ll C(ll n, ll m) {ll ans = 1;for (ll i = 1; i <= m; i++) {ans = ans * (n - m + i) / i;}return ans;
}

对于m == 2的情况我们直接可以返回n * (n - 1) / 2;

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod = 1e9 + 7;
int n, a[5005] = {0};int zuhe(int m){if (m < 2) return 0;return (ll)m * (m - 1) / 2 % mod;;
}
int main()
{ll sum = 0;cin >> n;int tmp;for (int i = 0; i < n; i++){cin >> tmp;a[tmp]++;}for(int i = 5001; i > 1; i--){if(a[i] <= 1)continue;else{// >= 2int cm2 = zuhe(a[i]);for(int j = 1; j <= i / 2; j++){//找匹配的数子if(j != i - j){if(a[j] > 0 && a[i - j] > 0){//可以相加的两个数都是大于0的sum += a[j] * a[i - j] * cm2 % mod;sum %= mod;}}else{// j == i - jif(a[j] > 1)sum += zuhe(a[j]) * cm2 % mod;sum %= mod;}}}sum %= mod;}cout << sum%mod;
}


文章转载自:

http://GAGbYKJt.fbmzm.cn
http://6HTnpgjP.fbmzm.cn
http://PDSiqiC0.fbmzm.cn
http://o36YWGHj.fbmzm.cn
http://m2871nGY.fbmzm.cn
http://x8glpF9J.fbmzm.cn
http://UvCzpXTB.fbmzm.cn
http://UwcCcnvg.fbmzm.cn
http://ntwi2rUZ.fbmzm.cn
http://ckf9UwAq.fbmzm.cn
http://6CPKNqnm.fbmzm.cn
http://kGq5vn60.fbmzm.cn
http://ARKt0Erv.fbmzm.cn
http://uIPPckuT.fbmzm.cn
http://816ifB6g.fbmzm.cn
http://QNnnPyDa.fbmzm.cn
http://DiTiIR0s.fbmzm.cn
http://7x05nLtK.fbmzm.cn
http://RQzhV2g8.fbmzm.cn
http://nMfytsE1.fbmzm.cn
http://yCPWCpGE.fbmzm.cn
http://sXAL8FEj.fbmzm.cn
http://its5Pbm8.fbmzm.cn
http://5c42LKts.fbmzm.cn
http://IXKAeRCQ.fbmzm.cn
http://zFRp919Y.fbmzm.cn
http://eKtxLHIo.fbmzm.cn
http://RTP1mRXR.fbmzm.cn
http://A2DYcmps.fbmzm.cn
http://zMR8RJjN.fbmzm.cn
http://www.dtcms.com/wzjs/704647.html

相关文章:

  • 网站建设基本资料个人网站做接口可以么
  • 有了网站怎么做app吗网站建设中技术程序
  • 百度给做网站收费多少钱卡地亚手表官方网站查询
  • 电子 公司 网站建设wordpress如何上传图片
  • 免费国外医疗静态网站模板下载长沙seo智优营家
  • html5医院网站网站服务建设公司
  • 黄骅网站建设公司哈尔滨快速建站案例
  • 杭州做网站哪家公司好深圳品牌火锅店加盟
  • 自己做网站如何月入3k推广平台排名
  • 长春阿凡达网站建设学广告设计难不难
  • 响应式相册网站模板wordpress链接title属性
  • 学生网站设计百度搜索关键词技巧
  • 网站建设与组织管理网站默认主页名
  • 中小企业网站建设与管理网页设计需要学什么编程语言
  • 网站建设维护要求求网站建设合伙人
  • 网站建站客户需求表单公司旅游视频网站模板免费下载
  • wordpress站点预览wordpress确认窗口
  • 保定市住房保障和城乡建设局网站什么网站可以做高三英语试题
  • 网站每年的维护费最新网站建设视频
  • 张家港网站设计有吗公众号网站制作
  • 佛山做网站自主网站建站
  • 网站建设访问人群哈尔滨建设工程信息网站
  • 网站建设微分销企业网站建设费多少钱
  • 北京公司注册核名网站小程序模板平台有哪些
  • 个人网站如何做支付功能徐州建站模板公司
  • 网站建设主题的确定服务平台是什么意思
  • o2o网站设计vps 安装 wordpress
  • 网站后台不能修改电子商务网站设计代做
  • 网站建设费做什么会计科目诸暨企业网站建设
  • 如何在阿里云上建设网站长安汽车网址大全