题目:小Hi和小Ho的礼物

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


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

分析过程下次补上

代码如下:

 #include <iostream>
#include <unordered_map>
using namespace std; int main()
{
int n, a[];
long long ans = ;
unordered_map<int, int> cnt1, cnt2; cin >> n; //预处理cnt1,cnt1[X]表示“包含X枚金币的袋子个数”
for(int i = ; i < n; i ++)
{
cin >> a[i];
cnt1[a[i]]++;
}
//预处理cnt2,cnt2[X]表示“选出2个袋子,金币之和为X的选法种数”
for(int i = ; i < n; i ++)
for(int j = i + ; j < n; j ++)
cnt2[a[i] + a[j]]++; for(int i = ; i < n; i ++)
for(int j = i + ; j < n; j ++)
{
if(a[i] != a[j]) //容斥原理
ans += cnt2[a[i] + a[j]] - cnt1[a[i]] - cnt1[a[j]] + ;
else
ans += cnt2[a[i] + a[j]] - cnt1[a[i]] - cnt1[a[j]] + ;
}
cout << ans << endl; return ;
}

运行结果如下:

最新文章

  1. 一键启动NameNode和DataNode--shell脚本
  2. 查看mysql数据库版本方法总结
  3. win8设置保护眼睛的颜色
  4. OAF_开发系列04_实现OAF查询4种不同的实现方式的比较和实现(案例)
  5. POJ3928 Pingpong(统计比 K 小的个数 + 树状数组)
  6. 话说Centos下nginx,php,mysql以及phpmyadmin的配置
  7. node-sqlserver :微软发布的 SQL Server 的 Node.js 驱动
  8. H面试程序(11): 判断字符串是否包含子串问题
  9. 【SICP读书笔记(三)】练习2.18 --- 表序列的reverse方法
  10. .进程&amp;线程(&amp;java.lang.Thread)详解
  11. springmvc+swagger构建Restful风格文档
  12. 在macos上基于python2.7安装PyQt5
  13. Netflix网关zuul(1.x和2.x)全解析
  14. TCP/IP详解--拥塞控制 &amp; 慢开始、拥塞避免、快重传和快恢复。
  15. snakemake使用小结
  16. Netty中的基本组件及关系
  17. JUnit源码分析 - 扩展 - 自定义RunListener
  18. linux 下安装arm-linux-gnueabi交叉编译器
  19. spring boot security 登出
  20. flask第二十一篇——练习题

热门文章

  1. MapReduce编程中常用的字符操作
  2. CodeIgniter框架学习要点
  3. hdu-2837 Calculation---指数循环节
  4. 绘图、Core Animation与硬件架构
  5. Eclipse_java项目中导入外部jar文件
  6. 当当网-前端project师測试题
  7. 九.mysql数据库多实例安装mysqld_multi [start,stop,report]
  8. PAT——1001. 害死人不偿命的(3n+1)猜想
  9. windows下如何安装pip以及如何查看pip是否已经安装成功?
  10. [转]TestNG的多线程并行