Codeforces Round #182 (Div. 1) D. Yaroslav and Divisors

在URP中正确写入Sprite深度以使用DOF 我准备在文字冒险中加入景深的效果,但是因为unity内置shader的缘故,sprite是不会写入深度的,而如果要使用PostProcessing的DOF效果的话,是必须要将半透明物体的深度正确写入Depth Buffer的,这篇消耗了我大量精力的文章就是要介绍正确写入的方法。 其实,如果只是要在2D游戏中实现类似于景深的效果,不写入深度其实也是可以的,我找到的有两种方案:一种是实时对Sprite进行模糊计算;二是直接使用离线预模糊的图片,根据强度进行混合。 离线预模糊 虽然这两种方法都可以比较简 阅读详情

数学分析很重要啊~~

求l,r之间有多少个序列对:

道题给出的是1-N的一个排列,因此是一个非常特殊的问题,倍数关系的对只有NLOGN(N/1 + N/2 + ..+N/N)
预处理出所有的序列对,可以统计出前缀和sum[l]表示1~l之间的对数

对于每个查询(X,Y),我们将所有关系对XI>=X的,YI <= Y进行统计,

可以用总数sum[y]-sum[x] - (xI<x但是yI>=x&&yI<=y的对数)

需要对所有对数排序,所有询问也排个序

原文大神链接:http://hi.baidu.com/zyz913614263/item/86338144aba62ab8df2a9f7f

自己写的代码 比较龊

#include<cstdio>
#include<cstring>
#include<climits>
#include<string>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<queue>
#include<vector>
#include<stack>
#include<map>
#include<set>
using namespace std;
typedef long long ll;

template<class T> void show(T *a, int n) {  for(int i = 0; i < n; i++) cout<<a[i]<<"  "; puts("");  }
template<class T> void queue_clear(T *a, int n) {   for(int i = 0; i < n; i++) {while(!a->empty()) a->pop();}   }      
template<class T> void Bit_add(T *a, int x, int p, int MAX) {   while(p < MAX){a[p] += x; p += p&(-p);}   }
template<class T> T Bit_sum(T *a, int p) { T ret = 0; while(p){ret += a[p];p -= p&(-p);}   return ret; }

const int MAXN = 200007;
struct node {
    int l, r, p;
    bool operator < (const node &no) const {
        return l < no.l;
    }
}q[MAXN];
vector<int> pai[MAXN];
int sum[MAXN];
int d[MAXN], p[MAXN];
int del[MAXN];
int ans[MAXN];

int main() {
    int n, m;
    while(~scanf("%d%d", &n, &m)) {
        int i, j, t;
        int l, r;
        for(i = 1; i <= n; i++) {
            scanf("%d", &t);
            p[t] = i;
        }
        for(i = 1; i <= m; i++) {
            scanf("%d%d", &q[i].l, &q[i].r);
            q[i].p = i;
        }
        
        memset(sum, 0, sizeof(sum));
        for(i = 1; i <= n; i++) pai[i].clear();
        for(i = 1; i <= n; i++) {
            for(j = i; j <= n; j += i) {
                l = p[i], r = p[j];
                if(l > r) swap(l, r);
                pai[l].push_back(r);
                sum[r] ++;
            }
        }
        for(i = 1; i <= n; i++) sum[i] += sum[i-1];
        
        sort(q+1, q+1+m);
        memset(d, 0, sizeof(d));
        int nq = 1;
        for(i = 1; i <= n; i++) {
            for(j = 0; j < pai[i-1].size(); j++) {
                Bit_add(d, 1, pai[i-1][j], n+1);
            }
            while(nq <= m && q[nq].l == i) {
                del[q[nq].p] = Bit_sum(d, q[nq].r) - Bit_sum(d, q[nq].l-1);
                nq ++;
            }
        }
        
        for(i = 1; i <= m; i++) ans[q[i].p] = sum[q[i].r] - sum[q[i].l-1] - del[q[i].p];
        for(i = 1; i <= m; i++) printf("%d\n", ans[i]);
    }
    return 0;
}



        
datax web升级springboot3 jdk17 datax web但GitHub上还是springboot2,没有升级过,最近扫漏洞发现spring-core漏洞必须升级到6.x才能解决,这时不得不将springboot升级到3.x,随之而来是jdk、mybatis-plus等等的升级,调整了几天才没问题,痛苦的开发人生~~以上,有疑问欢迎留言。 阅读详情

相关推荐

MOSFET高频响应实战:如何用LTspice仿真内部电容效应(附模型文件)

本文深入解析MOSFET高频响应中的内部电容效应,通过LTspice仿真工具详细展示如何提取模型参数并优化高频特性。从栅极相关电容到结电容的物理本质,再到实战案例中的开关损耗分析和频率响应扫描,提供全面的设计优化方法,帮助工程师有效应对高速开关电路中的电容挑战。

weixin_33725722的博客 391

Codeforces301 D. Yaroslav and Divisors(离线+树状数组)

题意: 给定长度为n的排列,m次询问, 每次询问给出L,R,问[L,R]内有多少个数对<i,j>,满足a(i)是a(j)的因子。 数据范围:n,m<=2e5

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 240

用ESP32和HomeSpan自制HomeKit智能灯,手把手教你从零接入苹果家庭App

本文详细介绍了如何使用ESP32开发板和HomeSpan开源库自制原生HomeKit智能灯,从硬件搭建到软件配置,再到通过苹果家庭App控制的全过程。项目绕过了苹果MFi认证,成本低廉但功能完整,支持Siri语音控制、自动化场景等高级功能,是智能家居DIY的实用指南。

weixin_28717431的博客 325

Codeforces Contest 301D Yaroslav and Divisors —— 树状数组求一段区间内因倍数对数的个数

This way 题意: 给你n个数,m个询问,问你l到r区间内有多少对数互为因倍数:4 2就有3对,4,4和2,2和4,2。 题解: 蛮难想的。 我先处理出从1到每个位置有多少对数。可以从前往后做,也可以从后往前做,我是从后往前做,一开始所有个数可以算出来: 当区间范围是1-n的时候,1的倍数有n个,2的倍数有n/2个。。以此类推加起来 从后往前做的时候枚举每一个当前数的因子和倍数,看看它有没有...

天翼之城的博客 887

山东大学软件学院计算机组成原理课程设计实验二

文章目录一、实验时间二、实验内容1.设计异步模16加1计数器2.设计4位移位器3.超前进位16位ALU的设计 一、实验时间 2021年4月1日星期四,第五周 二、实验内容 1.设计异步模16加1计数器 基本功能:使用D触发器(dff元件)和异或门构建从0开始计数的模16加1计数器 对应的电路图(这里已经实现了预置初值的功能) 拓展功能: (1)实现模256加1计数器 (2)实现计数器预置初值的功能 这里复用了上面的模16加1计数器 这里异步触发器预置初值的功能是这样实现的: (1)首先将CLR端调为0,

叶卡捷琳堡的博客 5254

宏基因组分析|完整分析流程梳理

今天先从最基础的全流程框架说起,无论是刚接触的萌新,还是想查漏补缺的同行,都能找到有用的信息。

weixin_70911870的博客 3165

Yaroslav and Divisors题解

Yaroslav and Divisors题解

2301_79395684的博客 1837

POCV/SOCV 、LVF的差别

1.POCV与OCV、AOCV 为了模拟片上PVT的差异带来的影响,最早提出了OCV(On Chip Variation)给每个cell都设置一个固定的derate值,来覆盖最悲观的情况,但是随着工艺发展,设计规模增大,OCV过度的悲观开始限制性能,于是又有了AOCV(Advanced On Chip Variation),用基于depth和distance的derate来取代单一的全局的derate值,但时序收敛的过程中逻辑级数depth的变化让时序分析的时间变得非常长,由此POCV诞生了。 POCV

m0_61544122的博客 5366

D. Yaroslav and Divisors顺序统计+树状数组

题意: 给你一组nnn个数字,这些数字是1 n1~n1 n的一个排列。现在有很多个询问,询问给定一个区间,问区间内有多少个整除对。 思路: 设sum[i]sum[i]sum[i]为从1到i的所有整除对数量。对于区间[l,r][l,r][l,r],我们知道,区间[l,r][l,r][l,r]的整除对数量是sum[r]−sum[l−1]sum[r]-sum[l-1]sum[r]−s...

Endeavor_G的博客 334

【实战项目开发技术分享】如何设置机器人禁行区/虚拟墙

在现代机器人技术的日益发展中,路径规划是使机器人在复杂环境中安全、高效移动的关键部分。其中一个重要的问题是如何划定机器人的禁行区,以确保机器人不会进入危险区域或无法到达的地方。在本文中,我们将探讨一些关键策略,帮助机器人算法工程师更好地划定禁行区。代价地图可以通过多层叠加来实现,一般包括以下几个层级:静态地图层(Static Map Layer):由SLAM(Simultaneous Localization and Mapping)构建的静态地图。该层包含了环境中固定不变的地物信息,如墙壁、家具等。

xiewf的博客 1万+

Openclaw错误排查及解决方案之:Previous run is still shutting down. Please try again in a moment.

Openclaw错误排查及解决方案之:Previous run is still shutting down. Please try again in a moment.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 233

codeforces 301D Yaroslav and Divisors(树状数组)

题目链接:http://codeforces.com/problemset/problem/301/D 题意 和2019徐州站的ICPC网络赛的I题Query基本一样,稍微一改 只是这个题 说明 自身和自身也是符合题意的数对 #include <iostream> #include <cstdio> #include <cstdlib> #include...

zx93的博客 334

RH850从0搭建Autosar开发环境【17】- Davinci Configurator之DCM模块配置详解(下)

RH850从0搭建Autosar开发环境【17】- Davinci Configurator之DCM模块配置详解(下)

weixin_42412049的博客 2379

Codeforces Round #182 (Div. 1)D. Yaroslav and Divisors

D. Yaroslav and Divisors time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Yaroslav has an array p = p1, p2, 

WhaleFall 398

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Codeforces Round #182 (Div. 1) D Yaroslav and Divisors1 树状数组

题目链接:http://codeforces.com/contest/301/problem/D 题意: 给你 n个数,m个询问,每次询问你,在li到ri这个区间内有多少对数xi,xj(xi<=xj)使得xi是xj的因子,如 2 4 7中 区间[1,2]里,2是4的因子,2是自己的因子,4也是自己的因子。 做法: 想了bitset与,但是空间...

人生如戏 224

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Codeforces Round #182 (Div. 1)--D. Yaroslav and Divisors--树状数组

D. Yaroslav and Divisors time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Yaroslav has an arrayp = p1, p2, ..., pn(1 ≤ pi ≤ n), ...

lanshan1111的博客 289

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces Round #182 (Div. 1) D. Yaroslav and Divisors(树状数组+思维)

题目链接 题意:给定初始数组,m个询问,每次询问问你【l,r】内一个数是另一个数的因子,求数量。 思路:我们一开始是想按右端点排序,然后计算以下query(s【i】.r)-query(s【i】.l-1)就行了,但是这样有一个问题,我们忘了减去【1,l-1】里的每个的每个数对【l,r】里的数产生的贡献了,但是这个贡献不好直接减,于是有一个神乎奇迹的解法,就是再这一个数组,s1维护的是左端点,s2...

qq_42479630的博客 226

Codeforces Round #182 (Div. 1) Yaroslav and Divisors(离线+树状数组)

Yaroslav has an array p = p1, p2, ..., pn (1 ≤ pi ≤ n), consisting of n distinct integers. Also, he has m queries: Query number i is represented as a pair of integers li, ri (1 ≤ li ≤ ri ≤ n).

WZJRJ28 442

Yaroslav and Divisors

Codeforces Round #182 (Div. 1)D:http://codeforces.com/contest/301/problem/D 题意:给一个1-n,n个数的序列,然后查询一个区间[l,r],问这个区间内有多少对:一个数是另外一个数的约数。 题解:这样的题目做的太少,自己也知道要用离线的数据结构,但是始终想不来,看了别人的代码也是半天没有看懂,最后还是请教了别人,才稍微...

weixin_30542079的博客 161

D. Yaroslav and Divisors

本题参考了CLJ的代码, ORZ...... 首先预处理出(a, b) a | b的所有对数 对于查询的区间按照右端点进行排序。。 对于某个区间[a, b], 考虑下一个可能的区间[c, b + 1] 显然[c, b + 1] 需要包含之前的满足条件的整除对。。 故考虑到b的时候,需要将b的所有满足条件的对数[x1, b], [x2, b]...[xn, b] 将区间[1, x

SYSU_WX 928

Codeforce 301D - Yaroslav and Divisors

确定了没有方便的更新统计方法,就想是不是要一个一个更新, 考虑(n/2 + n/3 + n/4 ..... n/n)其实不大,(1/2 + 1/3 + ....1/200000) 所以暴力之 更新时没问题,但直接统计个数会超时,要用到logn的东西 影响最终结果有两个因素: 1-n摆放的顺序和倍数; 数据结构中经典的解决两个因素制约的方法是先保存查询,然后边 插入边查询 设想一个查询

Jackyguo1992的专栏 1091

Codeforces 301D Yaroslav and Divisors 【树状数组 + 思维】

题目链接:Codeforces 301D Yaroslav and Divisors

世界很大 859

codeforces 301B. Yaroslav and Time(下标的艺术)

http://codeforces.com/problemset/problem/301/B 大意是这样的:从1点经过k点到达n点,开始出发的时间是极短的(0.X),其中途中点可以给予不同的time资源,不同点之间的距离是曼哈顿距离——|x1-x2|+|y1-y2|。问还需要多少时间能到达n点? 给定的中间点的位置是(x,y) 分析:最短距离问题很容易想到Dijkstra等算法,因为数据量不大

theArcticOcean 848

codeforces 301D Yaroslav and Divisors

题目大意:      给你n个数,然后问你一段区间内有ji

LHYL 822

2200专项:301D - Yaroslav and Divisors(树状数组 区间整除对数)

原题: http://codeforces.com/problemset/problem/301/D 题意: 有一个1-n的全排列,m个询问,某个区间的整除对对数(1-1,2-4,1-2) 解析: 首先可以简单的得出下标1~i内的对数:枚举每个数的倍数,标记位置较大的那个,再做前缀和。 区间[L,R][L,R][L,R]的对数=[1,R]−[1,L−1]−([1,L−1]与[L,R]之间)[1,R...

QAQ 521

算法练习Yaroslav and Algorithm

这里Yaroslav喜欢算法。我们将描述一个他最喜欢的算法。   1.这个算法接受一个字符串作为输入。我们设这个输入字符串为a。   2.这个算法由一些命令组成。i号命令的形式为"s[i]>>w[i]“或"s[i]<>w[i]”,其中s[i]和w[i]是长度不超过7的字符串(可以为空),由数字或字符"?“组成。   3.这个算法每次寻找一个编号最小的命令i,使得s[i]是a的子串。如果没有找到这样的命令,那么整个算法终止。   4.设找到的命令编号为k。在字符串a中,s[k]第一次.

m0_45902467的博客 431
上一篇: Uva 11248 Frequency Hopping
下一篇: TwoSat
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值