官方解题报告: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. 网络请求的null值处理

    最近项目中经常有遇到从服务器请求的数据是null的情况,这种情况下如果用[dic objectForKey:@"key"]方法,程序会发生崩溃现象,因为项目是以前的老项目,而且有太 ...

  2. iOS开发中的那些小技巧

    前言:今天在写代码的过程中遇到一个需要修改系统navigationBar的背景色,我起初用的是barTintColor去修改但是防不住系统点击按钮的时候会有一个渲染高亮的效果,调了好久没有达到自己想要 ...

  3. sql server 删除表字段和字段的约束

    删除数据库表中的字段时,使用了 :alter table 表名 drop column 列名 服务器返回的错误为:Server: Msg 5074, Level 16, State 1, Line 1 ...

  4. (转)MongoDB分片实战 集群搭建

    环境准备 Linux环境 主机 OS 备注 192.168.32.13 CentOS6.3 64位 普通PC 192.168.71.43 CentOS6.2 64位 服务器,NUMA CPU架构 Mo ...

  5. javascript 获取项目根路径

    /** * http://localhost:8088/projectName */ function getRootPath(){ //获取当前网址,如: http://localhost:8088 ...

  6. Codevs 1009 产生数

    题目描述 Description 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规 ...

  7. C语言算法系列---1.队列和栈

    写在前面:在家玩了好久,实在是不知道干嘛了,突然想找些事做,现在是时候做些什么了.这些东西不见得多高深,也可能很简单,但很基础,也无法忽视.同时,也是自己学习走过的一条路. 这是开头,就写写C的队列和 ...

  8. hidden(隐藏域)

    <input type="hidden">? 这等于是隐藏值,客户端无需显示,但提交后后台能够接受,例如你放个表单验证值在里边,这样可以拒绝来源不明的表单提交.还有判断 ...

  9. 基于FPGA的图像去噪

    目录 结构图 其中FPGA 控制模块为核心,通过它实现视频图像数据的获取.缓存.处理和控制各模块间通讯[1].由CCD 相机对目标成像,高速图像数据由camera link 实时传输[2],经信号转换 ...

  10. 验证中文、英文、电话、手机、邮箱、数字、数字和字母、Url地址和Ip地址的正则表达式

    Helper类代码 public class Helper { #region 单列循环 private Helper() { } private static Helper instance = n ...