9.8解题报告
前50min写完了三个题的暴力,但是暴力的正确性不高qwq。
没有造数据绝对不是因为我懒。
然后开始想正解,T1想了一个O(n)的方法,但是写代码的时候bug太多,所以调试花了将近2个小时。
然后剩下的两个题就没大看。
距考试结束还有20min时,总感觉自己的T1有bug,所以15min写完了n*√n的,交上了这个。
所以最后完美的炸掉了考试。
T1 100 T2 20 T3 10
qwq浪费时间的人绝对不是我。
T1
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,tot;
int ans[1000010];
int a[100010],b[100010],num[1000010];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(num[a[i]]==0) b[++tot]=a[i];
num[a[i]]++;
}
for(int i=1;i<=tot;i++)
for(int j=1;j<=sqrt(b[i]);j++)
if(b[i]%j==0&&(b[i]/j)!=j){
ans[b[i]]+=num[b[i]/j];
ans[b[i]]+=num[j];
}
else if(b[i]%j==0&&(b[i]/j)==j) ans[b[i]]+=num[j];
for(int i=1;i<=n;i++)
printf("%d
",ans[a[i]]-1);
}
T2
U13091 d1a
T3