小Hi和小Ho的礼物

题目:小Hi和小Ho的礼物

注:【i、j、p、q】为下标



个人感觉这道题是有一定难度的。读者可以参考一下【四平方和】的解题思路

分析过程下次补上

代码如下:

 1 #include <iostream>
 2 #include <unordered_map>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     int n, a[1000];
 8     long long ans = 0;
 9     unordered_map<int, int> cnt1, cnt2;
10
11     cin >> n;
12
13     //预处理cnt1,cnt1[X]表示“包含X枚金币的袋子个数”
14     for(int i = 0; i < n; i ++)
15     {
16         cin >> a[i];
17         cnt1[a[i]]++;
18     }
19     //预处理cnt2,cnt2[X]表示“选出2个袋子,金币之和为X的选法种数”
20     for(int i = 0; i < n; i ++)
21         for(int j = i + 1; j < n; j ++)
22             cnt2[a[i] + a[j]]++;
23
24     for(int i = 0; i < n; i ++)
25         for(int j = i + 1; j < n; j ++)
26         {
27             if(a[i] != a[j])    //容斥原理
28                 ans += cnt2[a[i] + a[j]] - cnt1[a[i]] - cnt1[a[j]] + 1;
29             else
30                 ans += cnt2[a[i] + a[j]] - cnt1[a[i]] - cnt1[a[j]] + 3;
31         }
32     cout << ans << endl;
33
34     return 0;
35 } 

运行结果如下:

原文地址:https://www.cnblogs.com/Tuple-Joe/p/9174909.html

时间: 2024-11-06 03:35:27

小Hi和小Ho的礼物的相关文章

hihocoder [Offer收割]编程练习赛14 小Hi和小Ho的礼物

题目1 : 小Hi和小Ho的礼物 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 某人有N袋金币,其中第i袋内金币的数量是Ai.现在他决定选出2袋金币送给小Hi,再选2袋金币送给小Ho,同时使得小Hi和小Ho得到的金币总数相等.他想知道一共有多少种不同的选择方法. 具体来说,有多少种下标四元组(i, j, p, q)满足i, j, p, q两两不同,并且i < j, p < q, Ai + Aj = Ap + Aq. 例如对于数组A=[1, 1, 2, 2, 2]

HiHo1505:小Hi和小Ho的礼物(Meet-In-The-Middle + 组合数学)

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 某人有N袋金币,其中第i袋内金币的数量是Ai.现在他决定选出2袋金币送给小Hi,再选2袋金币送给小Ho,同时使得小Hi和小Ho得到的金币总数相等.他想知道一共有多少种不同的选择方法. 具体来说,有多少种下标四元组(i, j, p, q)满足i, j, p, q两两不同,并且i < j, p < q, Ai + Aj = Ap + Aq. 例如对于数组A=[1, 1, 2, 2, 2],一共有12种选法: i j p

hihocoder1545 : 小Hi和小Ho的对弈游戏(树上博弈&amp;nim博弈)

描述 小Hi和小Ho经常一起结对编程,他们通过各种对弈游戏决定谁担任Driver谁担任Observer. 今天他们的对弈是在一棵有根树 T 上进行的.小Hi和小Ho轮流进行删除操作,其中小Hi先手. 游戏的规则是:每次删除,小Hi或小Ho都可以选择一个非根节点,将以该节点为根的子树从 T 中删除.如果删除之后 T 只剩下一个根节点,则该次操作者胜利. 机智的小Ho认为规则对自己不利,于是他提出了一个补充规则:在小Hi第一次删除之前,小Ho可以选择是否删除根节点.如果他选择删除根节点,则原本的有根

微信“小程序”开发小指南

最近两天程序员界最火的应该就是微信“小程序”,抽空试了一下,感觉上手很容易,微信提供的各种组件.API都很全,但是要做的与众不同又性能优良也是不太容易的.本文将首先谈一下我们的小程序运行的架构,然后简单告诉大家几个入门教程的地址. 一.架构 用户户会频繁和微信交互,微信也会频繁与OS交互,当然微信也通过API的方式来获取第三方的数据,并且通过服务组件.开发工具和交互框架来定义小程序的交互样式.展现方式和扩展功能. 二.怎样玩一玩 首先是安装破解版的开发工具,下面的地址写的很详细,地址 接着是教程

假设一对耗子每个月都可以生一对小耗子。小耗子生长3个月后,从第4个月开始也就能够生小耗子。问:假设所有的耗子都不死的话,那么20个月后一共有多少只耗子?

#include <stdio.h>void main(){ int i=0,old=2,first=0,second=0,third=0,sum=0; for(i=0;i<20;i++) { old=old+third; third=second; second=first; first=old; } sum=old+first+second+third; printf("20个月后一共有%d只耗子!\n",sum);} 分析图: 假设一对耗子每个月都可以生一对小耗

由多个电容组成的去耦旁路电路,电容怎么布局摆放,先大后小还是先小后大?

由多个电容组成的去耦旁路电路,电容怎么布局摆放,先大后小还是先小后大? PCB设计规范与指南, 电磁兼容 EMC, 高频高速PCB设计 by xfire 去耦旁路电磁兼容高速电路设计 对于噪声敏感的IC电路,为了达到更好的滤波效果,通常会选择使用多个不同容值的电容并联方式,以实现更宽的滤波频率,如在IC电源输入端用1μF.100nF和10nF并联可以实现更好的滤波效果.那现在问题来了,这几个不同规格的电容在PCB布局时该怎么摆,电源路径是先经大电容然后到小电容再进入IC,还是先经过小电容再经过大

ios学习笔记图片+图片解释(c语言 oc语言 ios控件 ios小项目 ios小功能 swift都有而且笔记完整喔)

下面是目录其中ios文件夹包括了大部分ios控件的介绍和演示,swift的时完整版,可以学习完swift(这个看的是swift刚出来一周的视频截图,可能有点赶,但是完整),c语言和oc语言的也可以完整的学习完所需知识,,其他文件夹的内容如其名说描述一样 没张图片都有文字说明,可以需要该功能的时候搜索一下然后打开图片就可以学习到 网盘下载地址:需要的话给留言我再传上去 http://www.cnblogs.com/langtianya原创 ios学习笔记图片+图片解释(c语言 oc语言 ios控件

PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键

PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键 1. 附加:工具栏不见了 调色板(Palette)快捷工具栏不见了PowerDesigner 快捷工具栏 palette 不见了,怎么重新打开,找回来呢 上网搜索了一下"powerdesigner 图形工具栏",找到了找回PowerDesigner工具栏palette的方法Tools(工具栏)customsize toolbars(自定义工具栏)palette(调色板)勾选 2.

小程序再次大升级:一号旺铺让你能用小程序打开小程序

腾讯科技讯6 月 21 日晚间,小程序再次迎来三大功能升级,包括小程序打开小程序.门店小程序的门店页支持添加视频.门店小程序支持接口管理,丰富了使用场景和扩展性. 以下为主要功能升级: 1.一号旺铺小程序打开小程序 同一个公众号下关联的 10 个同主体小程序和 3 个非同主体小程序之间,可以调用接口直接相互跳转.微信客户端6.5. 9 及以上版本支持. 2.门店小程序的门店页支持添加视频 为了方便宣传门店形象,门店小程序的门店页支持可添加视频.添加视频方式有两种: 上传视频至公众号素材库添加.