2010acm/icpc杭州赛网络赛1001
来源:互联网 发布:数据库管理阶段的特点 编辑:程序博客网 时间:2024/05/21 18:41
我们这样的菜鸟也有机会上网络赛了,这次杭州赛算是发挥了水准,要数一点小小的瑕疵就是忘记把变量t改成int64的,导致WA2次
先说说思路吧,先打一个素数表,把每一个底数分解因式,把含有素数因子i的数目加到aaa[i]上,这样就求出了总乘积M包含的因子以及这些因子的数量。接下来,只要枚举每一个因子,看满足含有aaa[i]个因子i 的最小阶,输出其中最大的一个。
//hdu3641
#include<iostream>
using namespace std;
int prime[100],k,temp[100];
bool sel[100];
void makeprime()//打素数表
{
int i,j,k;
memset(sel,0,sizeof(sel));
for(i=4;i<=100;i+=2)
sel[i]=1;
j=2,i=0;
while(j<=100)
{
prime[i++]=j;
j++;
while(sel[j]&&j<=100)
j++;
k=j*3;
while(k<=100){
sel[k]=1;
k+=2*j;
}
}
prime[i]=-1;
}
int main()
{
int i,j,k,c,m;
makeprime();
__int64 aaa[100],log2[100][50],temp,a,b,t,result,sum,n[100][50];
//aaa[]:因子的个数。n[i][j]: 因子i的j次方,log2[i ][j]:因子i的j次方的阶乘含多少个因子i。
//对于某个因子x,log2[x][j] 可以用log2[x][j]=log2[x][j-1]+n[x][j-1]确定
for(i=0;prime[i]!=-1;i++)
{
t=prime[i];
n[t][0]=t;
for(j=1;j<50;j++)
n[t][j]=n[t][j-1]*t;
}
for(i=0;prime[i]!=-1;i++)
{
t=prime[i];
log2[t][0]=1;
for(j=1;j<50;j++)
log2[t][j]=log2[t][j-1]+n[t][j-1];
}
cin>>c;
while(c--)
{
scanf("%d",&m);
result=result=0;
memset(aaa,0,sizeof(aaa));
for(i=0;i<m;i++)
{
scanf("%I64d%I64d",&a,&b);
if(a==1)
continue;
j=0,t=a;
for(k=0;t>1;k++){
if(t%prime[k]==0)
{
temp=0;
while(t%prime[k]==0){
t/=prime[k];
temp++;
}
aaa[prime[k]]+=b*temp;
}
}
}
for(i=2;i<100;i++)
{
if(aaa[i]){
t=aaa[i];
for(j=0;log2[i][j] <= t;j++);
j--;
sum=n[i][j];
temp=t-log2[i][j];
while(j>=0){
while(log2[i][j] <= temp){
temp-=log2[i][j];
sum+=n[i][j];
}
j--;
}
if(sum>result)
result=sum;
}
}
printf("%I64d/n",result);
}
return 0;
}
- 2010acm/icpc杭州赛网络赛1001
- 2012 ACM/ICPC 杭州赛区网络赛Super Mario
- hdu 4738 Caocao's Bridges 2013 ACM-ICPC杭州赛区网络赛 1001 双连通分量
- HDU4414 2012ACM/ICPC杭州赛区网络赛E Finding crosses
- HDU4415 Assassin’s Creed 2012ACM/ICPC 杭州赛区网络赛 F
- HDU 4741 Save Labman No.004 2013 ACM/ICPC 杭州网络赛
- 2012 ACM/ICPC杭州网赛总结 #by nobody
- 2010 acm 杭州网络赛A Treasure Hunting
- 2013年ACM网络赛杭州赛区
- 【Author : DS & MZ】 2012 ACM-ICPC 杭州网络预赛
- 2012 ACM/ICPC 长春赛区网络赛
- 2013 ACM/ICPC 长沙网络赛-Goldbach
- 2013 ACM/ICPC 长沙网络赛-Candies
- 2013 ACM/ICPC 长沙网络赛-Goldbach
- acm icpc 北京网络赛 1007
- 2015 ACM-ICPC 沈阳网络赛总结
- [刷题]ACM ICPC 2015合肥网络赛
- ACM/ICPC北京赛区网络赛
- C++和flex实现聊天室功能
- C++五大内存分区
- 冷饭
- 修改web.xml 去掉jetty锁定静态文件的问题 的配置(正点-使用maven,jetty配合)
- js Event 在ie与FF的兼容性
- 2010acm/icpc杭州赛网络赛1001
- 华为面试
- silverlight实现翻转效果
- ogre中每个骨骼动画分多个文件导出,解决动作变形的问题
- hibernate 数据检索
- Mac OS X 平台上编译WebCore 注意事项
- 模板小知识点
- apt-get: Dynamic MMap ran out of room的解决方法
- 如何用3个2表示任意整数?