栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3435 Ideal Puzzle Bobble

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3435 Ideal Puzzle Bobble

#include <iostream>#include <sstream>#include <string>#include <vector>#include <deque>#include <queue>#include <set>#include <map>#include <algorithm>#include <functional>#include <utility>#include <cmath>#include <cstdlib>#include <ctime>#include <cstring>#include <cstdio>#include <list>#define pb push_back#define mp make_pairusing namespace std;const int N = 1000000 ;long long dp[N+1] ;int u[N+1] , sum[N+1];bool visit[N+1] ;vector<int> prime ;vector<int> use ;int m ;void getMobi(){ prime.clear() ; u[1] = 1 ; memset(visit,false,sizeof(visit)) ; for (int i = 2 ; i <= N ; i++){ if (!visit[i]){ prime.push_back(i) ; u[i] = -1 ; } for (int j = 0 ; j < prime.size() ; j++){ if ((long long)prime[j]*i > N) break ; visit[prime[j]*i] = true ; if (i%prime[j]==0){ u[prime[j]*i] = 0 ; break ; } u[prime[j]*i] = -u[i] ; } } sum[0] = 0 ; for (int i = 1 ; i <= N ; i++) sum[i] = sum[i-1] + u[i] ;}long long gcd(int x,int y){ if (x > y) return gcd(y,x); long long ret = 0 ; for (int i = x , j ; i > 0 ; i = j){ int tx = x / i , ty = y / i ; j = max(x / (tx+1) , y / (ty+1)) ; ret += (long long)tx * ty * (sum[i]-sum[j]); } return ret;}long long gcd(int x,int y,int z){ if (x > y) return gcd(y,x,z) ; if (x > z) return gcd(z,x,y) ; long long ret = 0 ; for (int i = x , j ; i > 0 ; i = j){ int tx = x / i , ty = y / i , tz = z / i ; j = max(x / (tx+1) , max(y / (ty+1) , z/(tz+1))) ; ret += (long long)tx * ty * tz * (sum[i]-sum[j]); } return ret ;}int main(){ int L,H,W; getMobi(); while (~scanf("%d%d%d",&L,&W,&H)){ long long ans = 0 ; L--; W--; H--; ans += 3 ; ans += gcd(L,W); ans += gcd(W,H); ans += gcd(L,H); ans += gcd(L,H,W) ; cout<<ans<<endl; } return 0 ;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号