• CF 111B Petya and Divisors


    题目描述

    Petya喜欢寻找数字的因子。有一天他看到了这样的一条题目 : : :

    n n n个形如 [ x , y ] [x,y] [x,y]的二元组,对于每一个二元组,Petya希望找到有多少个 x i x_i xi的因子,使得在 [ x i − y i , x i − y i + 1 , ⋯   , x i − 1 ] [x_{i-y_i},x_{i-y_i+1},\cdots,x_{i-1}] [xiyi,xiyi+1,,xi1]中的每一个数都不能整除它。帮帮他解决这个问题吧。

    输入输出格式

    输入格式

    第一行有一个正整数 n n n,满足 ( 1 ≤ n ≤ 10000 ) (1 \leq n\leq 10000) (1n10000)

    下面有 n n n行,每行 2 2 2个非负整数 x i x_i xi y i ( 1 ≤ x i ≤ 1 0 5 , 0 ≤ y ≤ i − 1 ) y_i(1 \leq x_i \leq 10^5 ,0 \leq y \leq i-1) yi(1xi105,0yi1),意义如上文所述。

    特别的,如果 y i = 0 y_i=0 yi=0,结果就是 x i x_i xi因子的个数。

    输出格式

    n n n行,每行 1 1 1个数,表示有多少个 k k k,满足$[x_i $ m o d mod mod k = 0 k=0 k=0并且$(\forall j:i-y_i \leq j < i) $ m o d mod mod k ≠ 0 ] k \not = 0] k=0]

    说明

    样例一中前五个数的符合条件的因子如下:

    • 1 ) 1) 1) 1 , 2 , 4 1,2,4 1,2,4
    • 2 ) 2) 2) 3 3 3
    • 3 ) 3) 3) 5 5 5
    • 4 ) 4) 4) 2 , 6 2,6 2,6
    • 5 ) 5) 5) 9 , 18 9,18 9,18

    题目描述

    Little Petya loves looking for numbers’ divisors. One day Petya came across the following problem:

    You are given $ n $ queries in the form " $ x_{i} $ $ y_{i} $ ". For each query Petya should count how many divisors of number $ x_{i} $ divide none of the numbers $ x_{i-yi},x_{i-yi}+1,…,x_{i-1} $ . Help him.

    输入格式

    The first line contains an integer $ n $ ( $ 1<=n<=10^{5} $ ). Each of the following $ n $ lines contain two space-separated integers $ x_{i} $ and $ y_{i} $ ( $ 1<=x_{i}<=10^{5} $ , $ 0<=y_{i}<=i-1 $ , where $ i $ is the query’s ordinal number; the numeration starts with $ 1 $ ).

    If $ y_{i}=0 $ for the query, then the answer to the query will be the number of divisors of the number $ x_{i} $ . In this case you do not need to take the previous numbers $ x $ into consideration.

    输出格式

    For each query print the answer on a single line: the number of positive integers $ k $ such that

    样例 #1

    样例输入 #1

    6
    4 0
    3 1
    5 2
    6 2
    18 4
    10000 3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    样例输出 #1

    3
    1
    1
    2
    2
    22
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    提示

    Let’s write out the divisors that give answers for the first 5 queries:

    1) 1, 2, 4

    2) 3

    3) 5

    4) 2, 6

    5) 9, 18

    代码

    #include
    
    using namespace std;
    
    int l[1000000];
    
    int T;
    
    int main()
    {
    	cin>>T;
    	
    	memset(l,-1,sizeof(l));
    	
    	for(int k=1;k<=T;k++)
    	{		
    		int x,y;
    		
    		int ans=0;
    		
    		cin>>x>>y;
    		
    		for(int i=1;i<=x/i;i++)
    		{
    			if(x%i==0)
    			{
    				if(k-l[i]>y)
    				{
    					ans++;
    				}
    				
    				if(x-i*i!=0&&k-l[x/i]>y)
    				{
    					ans++;
    				}
    				
    				l[i]=l[x/i]=k;
    			}
    		}
    		
    		cout<<ans<<endl;
    	}	
    	
    	return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
  • 相关阅读:
    “文本界面”(Python插值字符串格式化打造)
    Pytorch 基于ResNet-18的服饰识别(使用Fashion-MNIST数据集)
    Django系列10-员工管理系统实战--靓号管理
    Process in Semiconductor(半导体工艺)
    基于web在线餐饮网站的设计与实现——蛋糕甜品店铺(HTML+CSS+JavaScript)
    亚马逊云科技——云原生主题容器入门笔记
    BGP中next-hop-self 小实验
    jenkins配置钉钉机器人推送job构建信息
    STL-stack、queue和priority_queue的模拟实现
    【数据结构与算法】二叉树的链式访问
  • 原文地址:https://blog.csdn.net/m0_66603329/article/details/126897975