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

前端开发是青春饭吗福州百度seo代理

前端开发是青春饭吗,福州百度seo代理,如果做夺宝网站,设计配色网站问题描述 小蓝随手写出了含有 n 个正整数的数组 {a1, a2, …, an},他发现可以轻松地算出有多少个有序二元组 (i, j) 满足 aj 是 ai 的一个因数。因此,他定义一个整数对 (x1, y1) 是一个整数对 (x2, y2) 的 因数,当且仅当 x1 和 y1 分别是 x2…

问题描述

小蓝随手写出了含有 n 个正整数的数组 {a1, a2, …, an},他发现可以轻松地算出有多少个有序二元组 (i, j) 满足 ajai 的一个因数。因此,他定义一个整数对 (x1, y1) 是一个整数对 (x2, y2)因数,当且仅当 x1y1 分别是 x2y2 的因数。

他想知道有多少个有序四元组 (i, j, k, l) 满足 (ai, aj)(ak, al) 的因数,其中 i, j, k, l 互不相等


输入格式

  • 第一行包含一个正整数 n
  • 第二行包含 n 个正整数 a1, a2, …, an,相邻整数之间使用一个空格分隔。

输出格式

  • 输出一行包含一个整数,表示满足条件的 (i, j, k, l) 的个数。

样例输入

5
3 6 2 2 7

样例输出

4

样例说明

有效的四元组 (i, j, k, l)

  1. (1, 4, 2, 3): (3, 2)(6, 2) 的因子。
  2. (1, 3, 2, 4): (3, 2)(6, 2) 的因子。
  3. (4, 1, 3, 2): (2, 3)(2, 6) 的因子。
  4. (3, 1, 4, 2): (2, 3)(2, 6) 的因子。

约束

  • 对于 20% 的测试用例,n ≤ 50
  • 对于 40% 的测试用例,n ≤ 10^4
  • 对于 100% 的测试用例,1 ≤ n ≤ 10^5, 1 ≤ ai ≤ 10^5

c++代码

#include<bits/stdc++.h>
#include<stdio.h>using namespace std;typedef long long ll;vector<ll> myleft, myright, arr;
unordered_map<ll, vector<ll>> mps;
ll maxval, ans, n;int main() {scanf("%lld", &n);arr = vector<ll>(n);myleft = vector<ll>(100001, 0);myright = vector<ll>(100001, 0);for (ll i = 0; i < n; i++) {scanf("%lld", &arr[i]);mps[arr[i]].push_back(i);maxval = max(maxval, arr[i]);}for (ll i = 0; i < n; i++) {if (mps[arr[i]].size() > 1) {ans += mps[arr[i]].size() - 1;myleft[i] += mps[arr[i]].size() - 1;for (int x : mps[arr[i]]) {if (x != i) {myright[x]++;}}}for (int k = arr[i] * 2; k <= maxval; k += arr[i]) {if (mps.find(k) != mps.end()) {ans += mps[k].size();myleft[i] += mps[k].size();for (int x : mps[k]) {myright[x]++;}}}}ans = ans * (ans - 1);for (ll i = 0; i < n; i++) {if (myleft[i] - 1 > 0) ans -= myleft[i] * (myleft[i] - 1);if (myright[i] - 1 > 0) ans -= myright[i] * (myright[i] - 1);if (myleft[i] > 0 && myright[i] > 0) ans -= (myleft[i] * myright[i] * 2);}for (auto it = mps.begin(); it != mps.end(); it++) {if (it->second.size() > 1) ans += it->second.size() * (it->second.size() - 1);}printf("%lld\n", ans);return 0;
}//by wqs

算法解析

本题目用容斥原理

合法方案=总方案-不合法方案

总方案

ans = ans * (ans - 1);

ai = ak

if (myleft[i] - 1 > 0) ans -= myleft[i] * (myleft[i] - 1);

aj = al

if (myright[i] - 1 > 0) ans -= myright[i] * (myright[i] - 1);

ai = al 或者 aj = ak

if (myleft[i] > 0 && myright[i] > 0) ans -= (myleft[i] * myright[i] * 2);

如果ai = al 并且 aj = ak 多减了一次,加回来

for (auto it = mps.begin(); it != mps.end(); it++) {if (it->second.size() > 1) ans += it->second.size() * (it->second.size() - 1);
}
http://www.dtcms.com/wzjs/506184.html

相关文章:

  • 做一网站多少钱企业短视频推广
  • 怎么在别人网站做跳转搜索引擎优化的作用
  • 区政府网站自查整改和制度建设网站分为哪几种类型
  • 绿色风格网站农产品网络营销推广方案
  • 济宁网站建设软件新闻软文推广案例
  • 汝城网站建设提高网站流量的软文案例
  • 优化政府门户网站建设网络推广的常用方法
  • 现在帮人做网站赚钱吗重庆网络推广平台
  • 沟通交流型网站广告如何做什么软件可以优化关键词
  • 如何入驻微信小程序百度关键词seo
  • 江门网站建设公司网店运营在哪里学比较好些
  • 江门疫情最新消息今天英文关键词seo
  • 华为网站建设策划书百度指数分析官网
  • 买衣服网站排行榜前十名深圳营销策划公司十强
  • 我做网站了圆通如何提高网站搜索排名
  • 购物网站的基本功能直通车推广怎么收费
  • 搜题网站怎么制作seo推广培训班
  • 广州网站优化方案b2b平台有哪几个
  • 网站后台别人制作网站推广app软件
  • 做针织衫的网站软文是指什么
  • 大连建设网站搜索引擎优化的报告
  • 在建设局网站上怎么样总监解锁百度网址大全官方下载
  • 网站建设A系列套餐报价福州seo关键字推广
  • wordpress主题 含演示数据seo模拟点击软件源码
  • 网站建设与运维预算南昌seo
  • 苏州营销型网站建设seo公司优化排名
  • 百度搜索热度合肥百度快照优化排名
  • 营销软件团购网站如何做关键词优化
  • 小视频解析网站怎么做seo的目的是什么
  • jsp和php哪个做网站快网络软文