这是一个数学题牛客训练赛E
题目描述 https://www.nowcoder.net/acm/contest/78/E
输入描述:
第一行输入四个数 n,A0,An,Q
输出描述:
对于每组查询输出Al到Ar的和
输入
3 0 3 2
1 1
1 3
输出
1
6
备注:
为了对萌新表现出友好,数据保证了对于Ai的每一项都是整数 今天比赛遇上这个题,开始以为要用到组合数,而且数据比较大,可能会超时,一时间没有思路。
比赛快结束时发现
可以化简为 Ai=(a0*(n-i)+an*j)/n 把组合数消掉了,极大加快运算速度,将每项依次算出来再相加,
于是匆匆写好了代码,提交后发现过了百分之20,后面的超时了,比赛结束了我还没找到原因 翻看别人的代码,发现他没用用到累加,看样子有通式,突然我想到了等差数列的求和公式,Ai确实满足等差数列的通项,写好代码又发现没过
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <string>
#include <cstring>
using namespace std;
int main()
{
int n,a0,an,q,m,n2;
while(cin>>n>>a0>>an>>q)
{
for(int i=;i<q;i++)
{
cin>>m>>n2;
long long ans=((a0*(n-m)+an*m)/n+(a0*(n-n2)+an*n2)/n)*(n2-m+)/;
cout<<ans<<endl;
}
}
return ;
}
想了很久想到可能会爆掉数据,把那些an m l r不超过int范围的数据改成long long后就ac了,做个题真不容易
虽然那些数据不会爆,但是它们在计算过程中会爆掉,比如 m和n都是int类型 m+n超过int范围的话会使m+n的结果出错
做这道题真是不容易啊
这是一个数学题牛客训练赛E的更多相关文章
- 牛客训练赛25-A-最长区间
https://www.nowcoder.com/acm/contest/158#question 这题问最长的严格连续递增序列的最长长度是多少? 最开始感觉这道题不可做,因为有1e5个点,还有1e5 ...
- 牛客训练赛25-A-因数个数
题目链接https://www.nowcoder.com/acm/contest/158/A 无语...这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e ...
- 牛客训练赛55 E 树
很妙的一个树形DP问题,简单考虑了一下就过了 https://ac.nowcoder.com/acm/contest/2927/E 主要就是推公式(公式有点长呀) 大概就是这样,其实挺简单的. #in ...
- 2019牛客训练赛第七场 C Governing sand 权值线段树+贪心
Governing sand 题意 森林里有m种树木,每种树木有一定高度,并且砍掉他要消耗一定的代价,问消耗最少多少代价可以使得森林中最高的树木大于所有树的一半 分析 复杂度分析:n 1e5种树木,并 ...
- 寻找下一个结点 牛客网 程序员面试金典 C++ java Python
寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...
- 牛客巅峰赛S2第6场题解
牛客编程巅峰赛S2第6场 A-StringⅡ 题目 题目描述 给出一个仅包含小写字母的字符串s,你最多可以操作k次,使得任意一个小写字母变为与其相邻的小写字母(ASCII码差值的绝对值为1),请你求出 ...
- 牛客小白赛1 F题三视图
链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网 题目描述 Etéreo 拿出家里的许多的立方体积木,堆成了一个三维空间中的模型.既然你高考选了技术 ...
- 牛客小白赛4J——强迫症
链接:https://www.nowcoder.com/acm/contest/134/J 来源:牛客网 思路:把数列排序,把每一个重复的元素和最后一个数想加得到新数,在删掉这一元素即为去重的最少步骤 ...
- 牛客小白赛4 A 三角形 数学
链接:https://www.nowcoder.com/acm/contest/134/A来源:牛客网 题目描述 铁子从森林里收集了n根木棍,她开始将它们按顺序的排成一排,从左到右依次为1到n,她回想 ...
随机推荐
- mybatis使用<choose> <when>
一.需求 后台使用orcale数据库,mybatis做持久层,前台搜索功能,根据类型搜索,但是数据库中没有类型字段, 所以需要在where条件语句中进行判断,当type == x1 时和type == ...
- 命令行方式安装Pycharm
sudo apt install snapd snapd-xdg-open snap refresh sudo snap install pycharm-professional --classic
- Mac OS X 下优化 Terminal,一篇就够了!
先上最终效果图: 目录 目录 1. 相关工具介绍 2. 配置总览 3. 安装步骤 3.1. 安装 iTerm2 3.2. 安装XCode's Command line tools 3.3. 检查 zs ...
- 如何使用 eclipse进行断点 debug 程序
先给出一段程序,然后通过使用 eclipse 设置断点进行一步步操作看结果 package cn.debug.com; public class Demo18 { public static void ...
- YOLO2 (2) 测试自己的数据
Windos10 linux同样过程 现有问题: 本文过程在linux下类似,可以正常通过.windons下,运行python脚本出现问题,无法正常输出0001.txt(标定文件),所以只能使用lin ...
- metamask源码学习-metamask-controller.js
The MetaMask Controller——The central metamask controller. Aggregates other controllers and exports a ...
- 安装webpack和webpack打包(此文转自Henery)
Henery博客地址为:http://blog.csdn.net/henery_002 写的很详细,可以做参考 最近要做项目优化了,尤其是前端这块,许多js需要模块化管理和相应的优化 1.输入如下地址 ...
- Gazebo仿真
1.建议在本地Ubuntu 16.04下运行仿真程序.目前Gazebo模拟器的兼容性是一大问题,在虚拟机或配置较低的电脑上可能无法运行.如果你的显卡是N卡,建议安装Ubuntu下的显卡驱动. 2.运行 ...
- PAT A1111 Online Map (30 分)——最短路径,dijkstra
Input our current position and a destination, an online map can recommend several paths. Now your jo ...
- SpringMVC异常处理方式
一.描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合 ...