首页 > 其他分享 >C1. Good Subarrays (Easy Version)(推公式找性质)

C1. Good Subarrays (Easy Version)(推公式找性质)

时间:2023-12-05 11:01:23浏览次数:51  
标签:Good ++ Subarrays long Version res quad define

思路:

\[能想到平方是比较特殊的,因为x*x一定是x的倍数也就是说\sqrt[2]{x*x} = {x} \]

\[所以需要考虑平法之间的数手模一下样例可以发现 [x^2 ,(x+1)^2)之间是x倍数的有x^2 \]

\[x*(x+1), x*(x+2)这三个,所以可以知道平方之间有三个,只要讨论一下出来整个区间边界还有多少个 \]

这里可以用一个前缀和去优化就只用考虑右边界,右边界和上面三个讨论

\[[x^2 ,(x+1) * x) \quad 答案+1 \]

\[[(x+1) * x ,(x+2) * x) \quad 答案+1 \]

\[[(x+2) * x ,(x+1)^2) \quad 答案+1 \]

#include <bits/stdc++.h> 
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define ls p<<1
#define rs p<<1|1
#define PII pair<int, int>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<t<<endl;

using namespace std;
const int N = 1e6 + 10;
int t;

ll get(ll x)
{
	ll res = 0, m = sqrt(x);
	res += (m - 1) * 3;
	if(x >= m * m) res ++;
	if(x >= (m + 1) * m)	res ++;
	if(x >= (m + 2) * m)	res ++;
	return res;
}

void solve()
{
	ll l, r, ans = 0; cin >> l >> r;
	
	cout << get(r) - get(l - 1) << endl;
}

int main()
{
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//	freopen("1.in", "r", stdin);
	cin >> t;
//	while(t --)	
//	solve();
	debug(t) 
	return 0;
}

标签:Good,++,Subarrays,long,Version,res,quad,define
From: https://www.cnblogs.com/cxy8/p/17876745.html

相关文章

  • [good]串口读取
    #include<stdio.h>#include<stdlib.h>#include<math.h>#include<limits.h>#include<string.h>#include<windows.h>#include"serialport.h"intmain(){//wordbyteWORD_BYTEwb;wb.word=0x12......
  • 使用PyUIC将.ui文件转换为.py文件时出现 <?xml version="1.0" encoding="UTF-8"?>
    弄好相应第三方库在Pycharm中的配置后,完成窗口界面后生成.ui文件使用PyUIC将.ui文件转换为.py文件时出现<?xmlversion="1.0"encoding="UTF-8"?>   ^SyntaxError:invalidsyntax查了网上方法没解决,最后将PyUIC配置的Program路径从python.exe改为pyuic5.exe,问题解决......
  • SAP Fiori Tools 的 Application Information 视图里的 Min UI5 Version
    如下图所示:这个值位于manifest.json文件中的sap.ui5.dependencies.minUI5Version字段。manifest.json是SAPUI5应用程序的一个重要文件,它包含了应用程序的所有元数据。这个文件是以JSON格式编写的,所以它是人类可读的,也可以被计算机轻松解析。在manifest.json文件中......
  • python网络连接报错:ValueError("Unable to determine SOCKS version from %s" % proxy
      python应用proxy网络连接报错:returnsuper().send(request,*args,**kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/home/devil/anaconda3/envs/pytorch/lib/python3.11/site-packages/requests/adapters.py",line454,insendco......
  • Java环境变量配置及报错java --version Error: could not open `D:\APP\Develop\JA
    C:\Users\Administrator>java--versionError:couldnotopen`D:\APP\Develop\JAVA\jre\lib\amd64\jvm.cfg'Java环境变量的配置控制面板→系统→高级系统设置→环境变量在下方系统变量中新建在下方系统变量中找到Path,双击打开,新建两个%JAVA_HOME%\bin%JAVA_HOME%\jre\b......
  • docker-compose version 版本匹配
     version:'3.8'services:rmqnamesrv:image:apache/rocketmq:5.1.0container_name:rmqnamesrvports:-9876:9876restart:alwaysprivileged:truevolumes:-/usr/local/rocketmq/nameserver/logs:/home/rocket......
  • [good]c语言中各种类型
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdarg.h>#include<assert.h>#include<math.h>#include<time.h>#include<limits.h>#include<float.h>#include<ctype.h>#i......
  • 在eclipse中拖动项目到Tomcat服务器中报错:Project facet Java version 16 is not supp
    ......
  • [good]enum
    typedefenum{Reg_Set_Speed=100,//100Reg_Set_Enable_VSP,//101Reg_Set_Dir,//102Reg_Force_Stop}Modbus_Holding_Registors;这是一个C语言中的`enum`(枚举)类型定义。枚举是一种用户定义的数据类型,它可以包含几个用户定义的值。在这个例子中,`M......
  • [good]数据类型
    `uint`是一种无符号整数类型,它的全称是"unsignedint"。这种类型可以表示从0到某个正数的值。具体能表示的最大值取决于实现,但在大多数现代系统上,`uint`通常是32位的,可以表示的最大值是4294967295。与此相比,`uint8_t`和`uint32_t`是固定宽度的整数类型,它们的位宽分别是8位和32位......