kickstart-G

Posted demian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kickstart-G相关的知识,希望对你有一定的参考价值。

感觉自己很蠢,large数据只能交一次,忘记这回事了

A题 O(n^2)解法,用vector<set> 缓存j后面的数据,减少一重循环

 1 #include <string>
 2 #include <vector>
 3 #include<iostream>
 4 #include<cstdio>
 5 #include<queue>
 6 #include<cmath>
 7 #include <set>
 8 #include<algorithm>
 9 #include<cstring>
10 
11 using namespace std;
12 int a[7007];
13 int main(){
14     //freopen("/Users/zjg/CLionProjects/ac/A-large-attempt0.in","r",stdin);
15     //freopen("/Users/zjg/CLionProjects/ac/A-large-attempt0.out","w",stdout);
16     int kase;
17     cin>>kase;
18     for(int k=0;k<kase;k++){
19         int n;
20         cin>>n;
21         for(int i=0;i<n;i++)
22         {
23             cin>>a[i];
24         }
25         vector<set<long long>> v(7000);
26 
27         for(int i=n-1;i>=0;i--)
28         {
29             for(int j=i+1;j<n;j++)
30                 v[i].insert(a[j]);
31         }
32 
33         long long ans=0;
34         for(int i=0;i<n;i++)
35             for(int j=i+1;j<n;j++)
36             {
37 
38                 if(a[i]*a[j]<=200000&&v[j].count(a[i]*a[j]))
39                     ans++;
40                 else if(a[j]!=0&&(a[i]/float(a[j])==a[i]/a[j])&&v[j].count(a[i]/a[j]))
41                     ans++;
42                 else if(a[i]!=0&&(a[j]/float(a[i])==a[j]/a[i])&&v[j].count(a[j]/a[i]))
43                     ans++;
44             }
45         cout<<"Case #"<<k+1<<": "<<ans<<endl;
46     }
47     return 0;
48 }

 

以上是关于kickstart-G的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数