[hdu4710 Balls Rearrangement]分段统计】的更多相关文章

题意:求∑|i%a-i%b|,0≤i<n 思路:复杂度分析比较重要,不细想还真不知道这样一段段跳还真的挺快的=.= 令p=lcm(a,b),那么p就是|i%a-i%b|的循环节.考虑计算n的答案,令答案为f(n),则最后的结果可以表示为n/p*f(p)+f(n%p) 考虑计算f(n),设两个指针i.j,表示当前累加答案的起始位置分别对a和b取模的结果,则每次i与j中间的一个可以变成0,跳过的一段区间中答案是相同的. 复杂度分析,令a<b,则每次跳过的区间长度近似等于a,则总的复杂度为O(n/a…
Balls Rearrangement Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 945    Accepted Submission(s): 380 Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and n…
今天遇到个小问题觉得挺有意思,与大家分享. 需求是这样的,对数据库中的一张表做按时间的分段统计,结果只要每个区间的数量. select YEAR(create_time) as nian,MONTH(create_time) as yue,count(customid)  from custom_info GROUP BY nian,yue 结构是这样的,哈哈 /solr/comment/browse?q=*%3A*&wt=json&indent=true&start=0&…
http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 735    Accepted Submission(s): 305 Problem Description Bob has N balls and A b…
Balls Rearrangement Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1682 Accepted Submission(s): 634 Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and number…
Balls Rearrangement Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 322    Accepted Submission(s): 114 Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and n…
mysql> select end) as '<60', end) as '60~69', end) as '70~79', end) as '80~89', end) as '>=90' -> from student_course -> ; +------+-------+-------+-------+------+ | +------+-------+-------+-------+------+ | +------+-------+-------+-------+-…
case 函数 CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... WHEN conditionN THEN resultN ELSE result END CASE 表示函数开始,END 表示函数结束. 如果 condition1 成立,则返回 result1, 如果 condition2 成立,则返回 result2, 当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了. 将sum与case…
Balls Rearrangement 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4611 Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and numbers the boxes from 0 to A-1. To find the balls easily, he puts the ball numbered x into the…
Balls Rearrangement Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 25    Accepted Submission(s): 8 Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and numbe…
sql之分区域分段统计 需求:在一个表中,有两列分别标记行政区划代码和家庭成员人数,需要得到不同乡镇的家庭成员人数在1-2人,3-4人,5-6人,6人以上的家庭数的表格 思路: 用case when对家庭成员数量做出判断,如果符合返回1,不符合返回0.再将这些1和0加起来,获得家庭数. 如果需要获得总人数可以将then 1 else 0 中的1改为 CBFCYSL. 语句: select XZQHBM, end) as CYSL12, end) as CYSL34, end) as CYSL56…
sql之分段统计 需求:获取一个县所有家庭人数在1-2人,3-4人,5-6人,6人以上的家庭数的数组 思路:通过CASE WHEN 将 CBFCYSL分组,然后统计数据条数. 语句: SELECT THEN '1-2' THEN '2-3' THEN '4-5' THEN '6+' ELSE '其他' END AS QJ, COUNT(CBFCYSL) AS NUM FROM TDCBJYQ.dbo.CBF GROUP BY THEN '1-2' THEN '2-3' THEN '4-5' TH…
一个简单的分段统计的问题:student 表{id,name,score} 字段,统计各个分数段的人数.规则:60以下不及格,60-80良,80-100优. SELECT sum(CASE when score<60 then 1 else 0 end) AS '不及格',sum(CASE when score>=60 and score<=80 then 1 else 0 end) AS '良',sum(CASE when score>80 then 1 else 0 end)…
Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and numbers the boxes from 0 to A-1. To find the balls easily, he puts the ball numbered x into the box numbered a if x = a mod A.   Some day Bob buys B new boxes, a…
重点部分:TOTAL层 项目要求: 统计每个巡检员(USER_ID)当前月的签到率及查询相关字段 签到率公式:以巡检员为单位, (当月至今天为止签到的所有点/该月巡检点的总个数)=(b.Point/a.Total) TOTAL相关更多要求: ①在使用过程中,巡检点个数会根据实际情况进行变更,例如2014年1月15日管理员给某一位巡检员安排5个点,10天后增加了2个点,即2014年1月24日以后按照7个点来统计,所以,如果当月更改多次的话,这个月会分成许多段. ②每一次更改有一个批次号,对应表T_…
先算出lcm(a,b),如果lcm>=n,则直接暴力解决:否则分段,求出0-lcm内的+0-n%lcm内的值. 再就是连续相同的一起计算!! #include<iostream> #include<stdio.h> #include<algorithm> #include<iomanip> #include<cmath> #include<cstring> #include<vector> #include<s…
产品表 CREATE TABLE `product` ( `product_id` int(11) NOT NULL AUTO_INCREMENT, `product_model` varchar(255) NOT NULL, `product_price` decimal(15,4) NOT NULL, `product_status` tinyint(1) unsigned NOT NULL, `product_add_time` int(11) unsigned DEFAULT '0',…
SELECT CASE WHEN (age >= 10 AND age <= 20) THEN '10-20' WHEN (age >= 21 AND age <= 30) THEN '21-30' ELSE '30-' END 'eag_layer', count(*) emps FROM address_book GROUP BY CASE WHEN (age >= 10 AND age <= 20) THEN '10-20' WHEN (age >= 21…
http://acm.hdu.edu.cn/showproblem.php?pid=4611 从A中向B中移动和从B中向A中移动的效果是一样的,我们假设从B中向A中移动 而且A>B 我们先求出所有在B[0]上的点移动到A上的分布情况 可以求出花费 当我们要求B[1]上的点移动到A上的分布情况时 相当于B[0]在A上的分布情况水平右移一个单位 由于B[1]点对于B[0]也向后移动了一个单位 所有相对位置没有移动 但是A中有一个地方需要改动 那就是每次A中最后一个位置的点需要移动到A[0]位置(因为…
http://acm.hdu.edu.cn/showproblem.php?pid=4710 [code]: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; #define N 1000151 ]; ]; ]; ]; ; int lowbit(int i) { return i&-i; } void add(i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4611 先求出循环节,然后比较A和B的大小模拟过去... //STATUS:C++_AC_15MS_436KB #include <functional> #include <algorithm> #include <iostream> //#include <ext/rope> #include <fstream> #include <sstr…
以前好像是在UVa上貌似做过类似的,mod的剩余,今天比赛的时候受baofeng指点,完成了此道题 此题题意:求sum(|i%A-i%B|)(0<i<N-1) A.B的循环节不同时,会有重叠,重叠后的区间里的数的值相等(可以证明,这里不给出了),然后压缩区间端点值,直接求区间和即可 #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #inclu…
题意就不说了,刚开始做我竟然傻傻地去模拟,智商捉急啊~~超时是肯定的 求出 a ,b 的最小公倍数,因为n够长的话,就会出现循环,所以就不要再做不必要的计算了.如果最小公倍数大于n的话,就直接计算n吧. 除了可以应用循环来节省计算,还可以成段计算来节省. #include<stdio.h> #include<string.h> #define i64 __int64 i64 abs(i64 x) { ) return -x; return x; } i64 gcd(i64 a,i6…
这个公倍数以后是循环的很容易找出来,然后循环以内的计算是打表找的规律,规律比较难表述,自己看代码吧.. #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; long long n,a,b; long long lcd(int a,int b) { long long ret=a; ret*=b; int tmp; whil…
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4611 题意:给你一个N.A.B,要你求 AC代码: #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cstdlib> #include <cmath> #include <vector> #include…
意甲冠军:那是,  从数0-n小球进入相应的i%a箱号.然后买一个新的盒子. 今天的总合伙人b一个盒子,Bob试图把球i%b箱号. 求复位的最小成本. 每次移动的花费为y - x ,即移动前后盒子编号的差值的绝对值. 算法: 题目就是要求                  watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjg0MTg0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissol…
Balls Rearrangement Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1661    Accepted Submission(s): 627 Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and…
1. 分段统计分数      if object_id('[score]') is not null drop table [score] go create table [score]([学号] int,[课程编号] varchar(8),[成绩] int) insert [score] select 2006091001,'04010101',75 union all select 2006091001,'04010102',84 union all select 2006091001,'0…
Balls Rearrangement Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 344    Accepted Submission(s): 165 Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and n…
HDU 4611 Balls Rearrangement 令lcm=LCM(a,b),gcd=GCD(a,b).cal(n,a,b)表示sum(abs(i%a-i%b)),0<=i<n. 显然,答案就是cal(lcm,a,b)*(n/lcm)+cal(n%lcm,a,b). cal(n,a,b)可以通过暴力得到,即对i%a和i%b的值分段,连续的一段(遇到0终止)可以直接得到值. 因此,每段的长度将直接影响到时间复杂度. 当lcm较小时,cal中的n不会很大,即使每段长度很小也无所谓. 当lc…