AlBaath Collegiate Programming Contest (2015) 总结
2016-04-09 20:53
603 查看
和熊神两个人做的练习比赛
11题,一共A掉9个,看着q神2个多小时就ak了,感觉自己还是太弱了
唉
E 待补,到时候再写一下题解。
G 题
第四象限的情况有点特殊,我们提出来处理就好了。
I
感觉又像个简单的数论吧,直接贴一下代码:
11题,一共A掉9个,看着q神2个多小时就ak了,感觉自己还是太弱了
唉
E 待补,到时候再写一下题解。
G 题
第四象限的情况有点特殊,我们提出来处理就好了。
I
感觉又像个简单的数论吧,直接贴一下代码:
#include<iostream> #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<stdlib.h> #include<queue> #include<stack> #include<map> #include<vector> #define mem(a) memset(a,0,sizeof(a)) #define INF 0x7fffffff //INT_MAX #define inf 0x3f3f3f3f // const double PI = acos(-1.0); const double e = exp(1.0); template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; } template<class T> T lcm(T a, T b) { return a / gcd(a, b) * b; } template<class T> inline T Min(T a, T b) { return a < b ? a : b; } template<class T> inline T Max(T a, T b) { return a > b ? a : b;} using namespace std; int a[10005]; int flag[1000005]; __int64 g[1000005]; __int64 ans; void get(int maxn){ for(int i=2;i<=maxn;i++){ if(flag[i]>0){ ans+=(__int64)(flag[i])*(flag[i]-1)/2; for(int j=2;j*i<=maxn;j++){ if(flag[i*j]>0){ ans+=flag[i]*flag[i*j]; // printf(" %I64d %d %d\n",ans,i,i*j); } } } } } int main(){ int t; //freopen("1.txt","r",stdin); while(~scanf("%d",&t)){ while(t--){ mem(flag); // mem(g); int n; ans=0; scanf("%d",&n); int maxn=0; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); maxn=max(maxn,a[i]); flag[a[i]]++; } get(maxn); printf("%I64d\n",ans); } } return 0; }
相关文章推荐
- 0409-学习进度条
- sbt介绍与构建Scala项目
- unreal3对象属性自动从配置文件中加载的机制
- 黄金分割点
- jQuery中添加自定义或函数方法
- LeetCode117—Populating Next Right Pointers in Each Node II
- JAVA排序之Comparable和Comparator
- 基于iCamera测试AR0134 960p 全局快门相机模块小结
- JAVA String 类 总结(2)
- memset()函数及其作用
- hdoj-1173-采矿
- MySQL系统变量的使用
- Hbase 学习笔记4----原理
- Java虚拟机结构--数据类型
- JavaScript编写人机对战五子棋(终)
- C++中不能声明为虚函数的有哪些函数
- CCF-201509-5 最佳文章
- 26. Remove Duplicates from Sorted Array
- linux kernel 模块化编程入门
- jQuery事件