官方解题报告:http://blog.sina.com.cn/s/blog_6bddecdc0102uzwm.html

Boring Sum http://acm.hdu.edu.cn/showproblem.php?pid=4961

这个二分也过了,on更快些。

 #include<cstdio>
#include<cstring>
#include<vector>
#define mt(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef __int64 LL;
const int M=;
int a[M];
LL b[M],c[M];
int val[M];
vector<int> yueshu[M];
int main(){
for(int i=;i<=;i++){
yueshu[i].clear();
for(int j=;j*j<=i;j++){
if(!(i%j)){
yueshu[i].push_back(j);
if(i/j!=j)
yueshu[i].push_back(i/j);
}
}
}
int n;
while(~scanf("%d",&n),n){
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
mt(val,);
for(int i=n-;i>=;i--){
int now=a[i];
if(!val[now]){
b[i]=now;
}
else{
b[i]=val[now];
}
int len=yueshu[now].size();
for(int j=;j<len;j++){
int yue=yueshu[now][j];
val[yue]=now;
}
}
mt(val,);
for(int i=;i<n;i++){
int now=a[i];
if(!val[now]){
c[i]=now;
}
else{
c[i]=val[now];
}
int len=yueshu[now].size();
for(int j=;j<len;j++){
int yue=yueshu[now][j];
val[yue]=now;
}
}
LL ans=;
for(int i=;i<n;i++){
ans+=b[i]*c[i];
}
printf("%I64d\n",ans);
}
return ;
}

Fast Matrix Calculation http://acm.hdu.edu.cn/showproblem.php?pid=4965

ababab矩阵等于a*(ba)^2*b,ba是kk的矩阵复杂度就k^3 log(n^2)

 #include<cstdio>
#include<cstring>
typedef __int64 LL;
const int mod=;
const int M=;
class Matrix{
typedef int typev;
public:
typev val[M][M];
void zero(){
memset(val,,sizeof(val));
}
void unit(){
zero();
for(int i=;i<M;i++) val[i][i]=;
}
}D;
int LEN;
Matrix operator * (const Matrix &a,const Matrix &b){
Matrix tmp;
tmp.zero();
for(int k=;k<LEN;k++)
for(int i=;i<LEN;i++){
if(a.val[i][k])
for(int j=;j<LEN;j++){
tmp.val[i][j]+=a.val[i][k]*b.val[k][j];
tmp.val[i][j]%=mod;
}
}
return tmp;
}
Matrix operator ^ (Matrix &a,int p){
Matrix tmp;
tmp.unit();
while(p){
if(p&) tmp=tmp*a;
a=a*a;
p>>=;
}
return tmp;
}
struct mat {
int n,m;
int data[][];
}A,B,C,E;
class MatrixOp {
public:
int mul(mat& c,const mat& a,const mat& b) { //c=a*b
int i,j,k;
if (a.m!=b.n) return ;
c.n=a.n,c.m=b.m;
for (i=; i<c.n; i++)
for (j=; j<c.m; j++)
for (c.data[i][j]=k=; k<a.m; k++)
c.data[i][j]+=a.data[i][k]*b.data[k][j];
return ;
}
} gx;
int main(){
int N,K;
while(~scanf("%d%d",&N,&K),N|K){
A.n=N;
A.m=K;
B.n=K;
B.m=N;
for(int i=;i<N;i++){
for(int j=;j<K;j++){
scanf("%d",&A.data[i][j]);
}
}
for(int i=;i<K;i++){
for(int j=;j<N;j++){
scanf("%d",&B.data[i][j]);
}
}
gx.mul(C,B,A);
LEN=C.n;
for(int i=;i<C.n;i++){
for(int j=;j<C.m;j++){
D.val[i][j]=C.data[i][j];
}
}
D=D^(N*N-);
for(int i=;i<C.n;i++){
for(int j=;j<C.m;j++){
C.data[i][j]=D.val[i][j];
}
}
gx.mul(E,A,C);
gx.mul(C,E,B);
LL ans=;
for(int i=;i<C.n;i++){
for(int j=;j<C.m;j++){
ans+=C.data[i][j]%;
}
}
printf("%I64d\n",ans);
}
return ;
}

Improving the GPA  http://acm.hdu.edu.cn/showproblem.php?pid=4968

4个for循环,突出一个暴力0ms,硬是要写dfs,当练习了,15ms。

 #include<cstdio>
double big,sma;
int num[],judge;
int tobig[]={,,,,};
int tosma[]={,,,,};
double val[]={4.0,3.5,3.0,2.5,2.0};
void dfs(int id,int sum){
if(id==){
num[]=sum;
int bigsum=,smasum=;
for(int i=;i<;i++){
bigsum+=tobig[i]*num[i];
smasum+=tosma[i]*num[i];
}
if(smasum<=judge&&judge<=bigsum){
double now=;
for(int i=;i<;i++){
now+=val[i]*num[i];
}
big=big>now?big:now;
sma=sma<now?sma:now;
}
return ;
}
for(int i=;i<=sum;i++){
num[id]=i;
dfs(id+,sum-i);
}
}
int main(){
int t,n,avg;
while(~scanf("%d",&t)){
while(t--){
scanf("%d%d",&avg,&n);
sma=1e9;
big=;
judge=avg*n;
dfs(,n);
printf("%.4f %.4f\n",sma/n,big/n);
}
}
return ;
}

Killing Monsters http://acm.hdu.edu.cn/showproblem.php?pid=4970

这个题目是来卡nlogn的。左++右--处理离线区间覆盖问题。on。

 #include<cstdio>
#include<cstring>
#define mt(a,b) memset(a,b,sizeof(a))
typedef __int64 LL;
const int M=;
LL lazy[M],sum[M];
int main(){
int n,m,x,y,d;
while(~scanf("%d",&n),n){
mt(lazy,);
scanf("%d",&m);
while(m--){
scanf("%d%d%d",&x,&y,&d);
lazy[x]+=d;
lazy[y+]-=d;
}
LL now=;
for(int i=;i<=n;i++){
now+=lazy[i];
sum[i]=now;
}
for(int i=n-;i>=;i--){
sum[i]+=sum[i+];
}
scanf("%d",&m);
LL h;
int ans=;
while(m--){
scanf("%I64d%d",&h,&x);
if(h>sum[x]) ans++;
}
printf("%d\n",ans);
}
return ;
}

end

2014 Multi-University Training Contest 9的更多相关文章

  1. HDU4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  2. hdu 4946 2014 Multi-University Training Contest 8

    Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. 2014 Multi-University Training Contest 9#11

    2014 Multi-University Training Contest 9#11 Killing MonstersTime Limit: 2000/1000 MS (Java/Others)   ...

  4. 2014 Multi-University Training Contest 9#6

    2014 Multi-University Training Contest 9#6 Fast Matrix CalculationTime Limit: 2000/1000 MS (Java/Oth ...

  5. 2014 Multi-University Training Contest 1/HDU4861_Couple doubi(数论/法)

    解题报告 两人轮流取球,大的人赢,,, 贴官方题解,,,反正我看不懂.,,先留着理解 关于费马小定理 关于原根 找规律找到的,,,sad,,, 非常easy找到循环节为p-1,每个循环节中有一个非零的 ...

  6. 2014 Multi-University Training Contest 1/HDU4864_Task(贪心)

    解题报告 题意,有n个机器.m个任务. 每一个机器至多能完毕一个任务.对于每一个机器,有一个最大执行时间Ti和等级Li,对于每一个任务,也有一个执行时间Tj和等级Lj.仅仅有当Ti>=Tj且Li ...

  7. hdu 4937 2014 Multi-University Training Contest 7 1003

    Lucky Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) T ...

  8. hdu 4941 2014 Multi-University Training Contest 7 1007

    Magical Forest Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  9. hdu 4939 2014 Multi-University Training Contest 7 1005

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  10. hdu 4930 Fighting the Landlords--2014 Multi-University Training Contest 6

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4930 Fighting the Landlords Time Limit: 2000/1000 MS ...

随机推荐

  1. web.config connectionStrings 数据库连接字符串的解释

    先来看一下默认的连接SQL Server数据库配置<connectionStrings>   <add name="LocalSqlServer" connect ...

  2. 跳出if判断

    //out是随便起的,也可为haha out:if(1<2){           System.out.println("进入第一步 1<2"); if(2<3 ...

  3. 20141104--SQL,查询习题,约束

    --创建学生信息表:学号,姓名,班级,性别,语文教师,数学教师,英语教师 --创建一个教师表:编号,姓名,课程,性别,出生日期 --创建一个分数表:语文,数学,外语,学号 --查询 语文成绩最高的学生 ...

  4. PowerDesigner数据库建模工具一缆

    转自:http://blog.csdn.net/shanliwa/archive/2007/10/20/1834117.aspx Sybase PowerDesigner - 一个高端数据建模工具.你 ...

  5. pop()实现逐个删除数组最后一位并输出

    使用pop()循环输出数组的最后一个元素 var a = []; a.push(1);a.push(3.1415926);a.push("number");a.push(" ...

  6. Linux系统目录分析

    Linux系统目录分析 /bin :系统指令目录(如ls.cp.mv等指令) /dev :系统设备目录 /home :系统用户的家,每一个系统用户都在此目录下有一个自己的家,每次登录时,系统都会自动登 ...

  7. curl raise 信号出core

    在使用c++多线程使用libcurl抓取网页时,遇到程序随机core掉的情况,gdb 一下出错信息有这么一条:longjmp causes uninitialized stack frame. 在网上 ...

  8. <解说linux下proc文件系统>

    proc文件系统的作用是访问系统内核信息 proc不是一个真实的文件系统,它不占系统的外存空间,只是以文件的形式为用户访问linux内核数据提供接口,因为系统内核总是动态的变化,所以我们所捕捉到的也只 ...

  9. 《CDN web加速代理》RHEL6

    CDN加速代理环境的测试:192.168.1.这个网段是可以上网的,2网段不可以上网 一台apache服务器 :配置 只安装apche服务 IP 192.168.1.59 一台双网卡的服务器 :只安装 ...

  10. jquery ready()的几种实现方法小结

    几种jQuery的ready ()的写法. 1.最常用也是最标准的  $(document).ready(){  });  2.是上面的简写:  $(function(){  })  很奇怪?为什么能 ...