9.8解题报告

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\n",ans[a[i]]-1);
}

T2

U13091 d1a

T3

P2934 [USACO09JAN]安全出行Safe Travel

猜你喜欢

转载自www.cnblogs.com/cangT-Tlan/p/9614323.html
9.8