| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 768 人关注过本帖
标题:数学家,这题有什么数学方法不啊,怎么这么多人过了啊T_T
只看楼主 加入收藏
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
结帖率:94.44%
收藏
已结贴  问题点数:100 回复次数:15 
数学家,这题有什么数学方法不啊,怎么这么多人过了啊T_T
RT
网址:http://
不科学啊,怎么这么多人过了啊, 是不是有什么数学规律,或公式可以推导出来啊
求解
搜索更多相关主题的帖子: 数学家 
2012-04-04 10:58
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:70 
肯定的额啊,这题压根就是一水题。

题意就是把a,a+1,...a+n-1都化成b^2*c同时使得b最大的形式,然后输出c1+c2+...cn;

对于每次求,比如求x所对应的c,把x分解质因数=a1^b1*a2^b2*...an^bn,如果bi是偶数,则表示这部分可以使平方里面的,如果是奇数,则表示要拿出一个ai出来。
50=2*5^2,所以5放进去,2拿出来,50=5^2   *    2
72=2^3*3^2,所以3不动,2拿出来一个,72=(2*3)^2   * 2

大概就是这样
2012-04-04 14:37
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
顺便问一下codeforces是什么东西啊
2012-04-04 14:40
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 2楼 czz5242199
问题是1000W的数据要4S内完成,这样行么
真心不懂啊
2012-04-04 14:57
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
貌似可以吧,我没法做,他提示什么东西来找
2012-04-04 15:00
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 5楼 czz5242199
我继续想想, 还没理解啊  呵呵
2012-04-04 15:00
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:30 
代码力量,这个网站有意思。题目提交之后还能得到测试数据。怎么样,草狼和小曹有没有兴趣在那里组个队呢?

不过,现在我看中这里的100分了

1475374 Apr 4, 2012 2:20:37 PM beyondyf D - Calendar Reform GNU C Accepted 200 ms 40500 KB

代码共14行,337个字节。

重剑无锋,大巧不工
2012-04-04 18:27
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 7楼 beyondyf
看了人家的代码 太邪恶了  原来直接打表不会TL啊
2012-04-04 18:54
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
直接打表?不是在侮辱我吧。哥们从不干那种投机取巧的事。况且打表也就用不了200MS这么长的时间了。
必须展示一下代码。
程序代码:
#include<stdio.h>
#define MAX_VALUE    10000000
int Y[MAX_VALUE + 1];
int main()
{
    int a, n, i, i2, j, t;
    long long s;
    for(i = 1; (i2 = i * i) <= MAX_VALUE; i++)
    for(j = 1, t = i2; t <= MAX_VALUE; j++, t += i2) Y[t] = j;
    scanf("%d%d", &a, &n);
    for(s = i = 0; i < n; i++) s += Y[a + i];
    printf("%I64d", s);
    return 0;
}

重剑无锋,大巧不工
2012-04-04 19:06
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 9楼 beyondyf
可能是我表达有误,我说的直接打表不是把所有答案先求出来的那种打表,呵呵
其实就是你那种打表法,YM大神
2012-04-04 19:18
快速回复:数学家,这题有什么数学方法不啊,怎么这么多人过了啊T_T
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012003 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved