怎样才能不T
  • 板块灌水区
  • 楼主fbcxxg
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/9/7 09:39
  • 上次更新2024/9/7 12:29:47
查看原帖
怎样才能不T
1053141
fbcxxg楼主2024/9/7 09:39

B17

题目描述

输入 nn 个整数 a1∼ana_1\sim a_n。

Alan喜欢除法,他想要把每个数都除以对应的下标,但显然这不一定除得尽(本题中能除尽的定义为除法的余数为 00)。

好在Alan还掌握了另一项技能,它可以执行若干次的 -1 操作,每次可以随意挑选一个数,将其减少 11。

请问Alan最少需要进行几次 -1 操作,才能让每个数除以对应的下标能除得尽。

输入格式

第一行一个整数 nn。

第二行为 nn 个整数 a1∼ana_1\sim a_n。

输出格式

一行一个整数,即答案。

样例 #1

样例输入 #1

3
5 1 10

样例输出 #1

2

样例 #2

样例输入 #2

6
100 100 100 100 100 100

样例输出 #2

5

提示

样例解释

  • 样例 1:可以把三个数变成 5 0 9
  • 样例 2:可以把六个数变成 100 100 99 100 100 96

数据规模与约定

对于 100%100\% 的数据,1≤n,ai≤1061\le n,a_i\le 10^6

  • 子任务 1(30 分):保证 n=2n=2。
  • 子任务 2(30 分):保证 1≤n,ai≤1001\le n,a_i\le 100。
  • 子任务 3(40 分):没有特殊限制。

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,a[100001],cnt=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]%i==0){
			continue;
		}else{
			for(int j=1;a[i]%i!=0;j++){
				a[i]=a[i]-1;
				cnt++;
			}
		}
	}
	cout<<cnt;
	
	return 0;
} 

T了最后四十分 有没有巨佬给本蒟蒻教一教

2024/9/7 09:39
加载中...