hdu--4947--我太天真了

这题 我还没有解决

如果 谁恰好看到这篇 有好的解决方案 不妨底下留言告诉我

-----------------------

我看到时间限制是 5500ms 总觉得肯定能过的

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4
 5 const int size = 50010;
 6 int tree[size];
 7 int lowbit( int x )
 8 {
 9     return x & -x;
10 }
11
12 void update( int x , int val )
13 {
14     while(x<size)
15     {
16         tree[x] += val;
17         x += lowbit(x);
18     }
19 }
20
21 int getSum( int x )
22 {
23     int sum = 0;
24     while( x )
25     {
26         sum += tree[x];
27         x -= lowbit(x);
28     }
29     return sum;
30 }
31
32 int main()
33 {
34     cin.sync_with_stdio(false);
35     int len , m , n , d , v , oper , k = 1;
36     while( cin >> len >> m &&(len||m) )
37     {
38         memset( tree , 0 , sizeof(tree) );
39         cout << "Case #" << k++ << ":" << endl;
40         while(m--)
41         {
42             cin >> oper;
43             if( oper==1 )
44             {
45                 cin >> n >> d >> v;// gcd(n,x) = d    tree[x] += v;
46                 if( n==d )
47                 {
48                     for( int i = n ; i<=len ; i+=n )
49                     {
50                         update( i , v );
51                     }
52                 }
53                 else
54                 {
55                     update( d , v );
56                     for( int i = d ; i<=len ; i+=d )
57                     {
58                         if( n%i==0 || i%n==0 )
59                         {
60                             continue;
61                         }
62                         else
63                         {
64                             update( i , v );
65                         }
66                     }
67                 }
68             }
69             else
70             {
71                 cin >> n;
72                 cout << getSum(n) << endl;
73             }
74         }
75     }
76     return 0;
77 }

应该时间是主要耗在了  update这里 不是函数的问题 而是选取哪些数进行Update的时候吧

哎 算了...

时间: 2024-11-04 20:32:14

hdu--4947--我太天真了的相关文章

方這太天真太不現實只

方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實只方這太天真太不現實 http://p.sfacg.com/p/6299841/http://p.sfacg.com/p/6287948/http://p.sfacg.com/p/6287952/htt

HDU 4947 GCD Array

GCD Array Time Limit: 11000/5500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 843    Accepted Submission(s): 205 Problem Description Teacher Mai finds that many problems about arithmetic function can be reduced to

HDU 5379 Mahjong tree (详解,构造+思维)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5379 题面: Mahjong tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1148    Accepted Submission(s): 351 Problem Description Little sun is an art

开笔(一直以来,我总是想得太多,做得太少)

曾经无数次构想自己的路,但是走到今天,却突然发现,自己选择的路太规矩.(太久没写东西,逻辑已经混乱了) 从大一入学到现在,已经过去了一年半,这一年半,我学到了什么?我长进了什么?我在脑海里狂搜一遍,发现什么都没学到.如今的我跟刚入学的我相比没有本质的变化.我觉得这些都要归咎于我没有一个规划,或者说没有一个有效的规划. 既然要谈,就放开来谈吧.先从规划讲起.我的专业的计算机科学与技术,在入学之前我有引路人,他告诉我这个专业的方向,也就是从那时候起,我知道了ACM(国际大学生程序设计竞赛).然后当时

hdu 4514(树的直径+并查集)

湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3930    Accepted Submission(s): 700 Problem Description 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,

为什么说程序员的前三年不要太看重工资水平

为什么说程序员的前三年不要太看重工资水平? 这是很多程序界的”过来人“给新人提出的忠告.1.得出这样结论的依据是什么?为什么?2.对于程序员职业发展的影响是怎样的?修改 举报 14 条评论 分享 • 邀请回答 按投票排序按时间排序 179 个回答 4432赞同反对,不会显示你的姓名 captain,互联网广告研发\RTB\CTR预估 李杨.angleboo.罗凌 等人赞同 本来以为基本会停止增长了,没想到前几天赞的数量一下又增长了一倍多.好像赞数突然增加的原因是另外一个关于应届生放弃某家企业of

Corporate Identity - HDU 2328(多串求共同子串)

题目大意:给你N(2-4000)个字符串,求出来他们的共同子串   分析:因为上次就说了再出现这种题就不用那种暴力的做法了,于是看了一些别的知识,也就是后缀树,把一个字符串的所有的后缀全部都加入字典树,然后用别的串去匹配,这样匹配的时候速度那是飕飕的啊,不过第一次我把前N-1个串的所有前缀搞进了字典树里面,然后想如果某个节点被访问N-1次,并且第N个串也能访问到此节点,那么这一定就是他们的共同子串了,不过总归是太天真,直接返回MLE,一细琢磨,想着最糟糕的情况也就是有8000(N)个串,每个串都

hdu 5248 序列变换

中文题意,略(但弱鸡的我还是把题目读错了,一直到读题解的时候才发现,弱鸡总会读错题目,我以为跑一下lis就行了,太天真) 但现在还是没有想到为什么会用二分(虽然大家都是这么说的,而且这是二分专题,emmm) #include <set> #include <map> #include <queue> #include <stack> #include <math.h> #include <vector> #include <st

HDU-1698-Just a Hook-区间更新

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 好吧,这个题目我起初想试试我不用延迟更新能不能过,嘿嘿,我还是太天真了...2000ms毫不客气的超时了,果然延迟更新大法好:这里我就不再详细的介绍延迟更新了,不懂的可以看我前面的博文:http://blog.csdn.net/wlxsq/article/details/46910485 #include<iostream> #include<string> #include&l