首页 > 其他分享 >P8834 [传智杯 #3 决赛] 序列 ----- 枚举、解决题目数据范围爆int问题

P8834 [传智杯 #3 决赛] 序列 ----- 枚举、解决题目数据范围爆int问题

时间:2022-11-23 12:00:22浏览次数:46  
标签:传智杯 P8834 ++ long int vec include size

题目背景

disangan333 喜欢 disangan233,于是他也想让你帮他数数。

题目描述

传智专修学院有 nn 名同学,每个同学都有一个数字 a_nan​。同时还知道一个常数 kk 。

如果有两名同学,第 ii 名同学和第 jj 名同学,满足 i<ji<j 且 a_i\times a_j\leq kai​×aj​≤k,那么这两名同学就被称为“和谐的一对”。请问这些同学中,有多少对“和谐的一对”呢?

对于所有数据,n \leq 10^3n≤103,a_i\leq 10^5ai​≤105,k\leq 10^9k≤109。

输入格式

输入共 22 行。

第 11 行输入两个正整数 n,kn,k。

第 22 行输入 nn 个正整数 a_1\ldots a_na1​…an​。

输出格式

输出共 11 行 11 个整数,表示答案。

输入输出样例

输入 #1
5 5
1 2 3 4 5
输出 #1
4

说明/提示

样例解释

样例中,(1,2),(1,3),(1,4),(1,5)(1,2),(1,3),(1,4),(1,5) 这 44 对都是“和谐的一对”。

 

解决ai <= 10 5 两数相乘会爆int问题

1.数组开long long

#include <iostream>
#include<iomanip>
#include <math.h>
#include <vector>
#include <unordered_set>

using namespace std; 


int main() {
    int n;
    long long k;
    int a;
    int res = 0;
    vector<long long> vec;
    cin >> n >> k;
    while (n--) {
        cin >> a;
        vec.push_back(a);
    }
    for (int i = 0; i < vec.size(); ++i) {
        for (int j = i + 1; j < vec.size(); ++j){
            if(vec[i] * vec[j] <= k) res++;
        }
    }
    cout << res;
    return 0;
}

2.乘法移项变成除法 (测试用例不会出现向下取整 导致错解的问题)

#include <iostream>
#include<iomanip>
#include <math.h>
#include <vector>
#include <unordered_set>

using namespace std; 


int main() {
    int n;
    int k;
    int a;
    int res = 0;
    vector<int> vec;
    cin >> n >> k;
    while (n--) {
        cin >> a;
        vec.push_back(a);
    }
    for (int i = 0; i < vec.size(); ++i) {
        for (int j = i + 1; j < vec.size(); ++j){
            if(vec[i] <= k / vec[j]) res++;
        }
    }
    cout << res;
    return 0;
}

 

 

 

标签:传智杯,P8834,++,long,int,vec,include,size
From: https://www.cnblogs.com/slowlydance2me/p/16917827.html

相关文章

  • WordPress编辑器支持PowerPoint导入
    ​图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,......
  • dockerfile中ENTRYPOINT与CMD的结合
    一、写在前面我们在上篇小作文docker容器dockerfile详解对中dockerfile有了比较全面的认识,我们也提到ENTRYPOINT和CMD都可以指定容器启动命令。因为这两个命令是掌握docke......
  • java int转byte数组
    int转byte[]低字节在前(低字节序)publicstaticbyte[]toLH(intn){byte[]b=newbyte[4];b[0]=(byte)(n&0xff);b[1]=(byte)(n>>8&0xff);......
  • INT-MAX INT_MIN
    INT_MAX=(1ll<<31)-1;这里有2个位置需要注意的是1》1ll<<31,必须是ll类型,因为随高位是1,即进入了符号位溢出了                  ......
  • C# WPF ListBox 最后追加项自动滚动到最后一项 ScrollIntoView
    用这个:lstbDynamicNote.ScrollIntoView(lstbDynamicNote.Items[lstbDynamicNote.Items.Count-1]);privatevoidDynamicNoteShow(stringdynamicNote){if(lstb......
  • docker PANIC: could not locate a valid checkpoint record
    dockerpostgresql启动异常一般是非正常的关闭造成事务的日志文件损坏了恢复办法关闭或者删除当前容器使用交互方式启动dockerrun-it-v/Users/jimogangdan/......
  • T292115 [传智杯 #5 练习赛] 树的变迁(并查集+倒序操作处理树分裂)
    T292115[传智杯#5练习赛]树的变迁题目大意:给定一棵具有\(n\)个节点的树,每个节点有一个初始权值\(a_i\)。一共需要进行\(m\)次操作,每次操作包括:1.1e编号......
  • IntSet-整数集
    IntSet是集合类型的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,redis就会使用IntSet作为集合键的底层实现InSet结构typedefstructintset......
  • WordPress编辑器支持PowerPoint一键粘贴
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • Failed to start end point associated with ProtocolHandler ["http-nio-8081"]
    FailedtostartendpointassociatedwithProtocolHandler[“http-nio-8081”]在运行springboot时出现了如上错误,在将application.yml-server-porter的数值从8081修......