比赛链接

D题是个二分,每次check复杂度为O(n),类似于xdu_1068,只是一个是求积,一个是求商

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef long double LF; const LF eps=1e-;
int a[],bb[];
LF b[];
LL A,B;
LL K;
LL rankof(LF x)
{
LL ans = ,now = B;
for(int i = ; i <= A; i++)
{
while(now)
{
if(a[i]*b[now] > x) now--;
else break;
}
ans += now;
}
return A*B-ans;
} void print()
{
puts("========");
for(int i=; i<=A; i++)
printf("%d ",a[i]);
puts("========");
for(int i=; i<=B; i++)
printf("%.2Lf ",b[i]);
puts("========");
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%lld%lld%lld",&A,&B,&K);
K--;
for(int i=; i<=A; i++)
scanf("%d",&a[i]);
for(int i=; i<=B; i++)
scanf("%d",&bb[i]),b[i]=(LF)1.0/bb[i];
sort(a+,a+A+);
sort(b+,b+B+);
// print();
LF l=a[]*b[],r=a[A]*b[B]+,mid;
while(r-l>eps)
{
mid=(l+r)/;
if(rankof(mid)<=K) r=mid;
else l=mid;
}
printf("%.2Lf\n",l);
}
}

D

E题是矩阵快速幂,注意sin函数有周期性

//话说这题模板没准备好,调了半天。。。(-。-;)

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL;
//////////////////////////////
LL T,n,f1,f2,ans;
///////////////////////////////
const long long N=;
const long long mod=; struct Mat
{
long long mat[N][N];
}; Mat Mut(Mat a,Mat b)
{
long long i,j,k;
Mat c;
memset(c.mat,,sizeof(c.mat));
for(k=; k<N; k++)
{
for(i=; i<N; i++)
{
if(a.mat[i][k])
for(j=; j<N; j++)
{
if(b.mat[k][j])
c.mat[i][j]=c.mat[i][j]+a.mat[i][k]*b.mat[k][j]%mod;
c.mat[i][j]=c.mat[i][j]%mod;
}
}
}
return c;
} Mat Pow(Mat a,long long n)
{
long long i,j;
Mat c;
for(i = ; i < N; ++i)
for(j = ; j < N; ++j)
c.mat[i][j] = (i == j);
for(; n; n>>=)
{
if(n&) c=Mut(c,a);
a=Mut(a,a);
}
return c;
} LL f(Mat A,long long n)
{
Mat A_;
A_=Pow(A,n);
LL ret=;
ret=(ret+A_.mat[][]*f2)%mod;
ret=(ret+A_.mat[][]*f1)%mod;
ret=(ret+A_.mat[][]*)%mod;
ret=(ret+A_.mat[][]*)%mod;
ret=(ret+A_.mat[][]*)%mod;
ret=(ret+A_.mat[][]*(-))%mod;
return (ret+mod)%mod;
} //=============================
Mat A; int main()
{
memset(A.mat,,sizeof(A.mat));
A.mat[][]=;A.mat[][]=;A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
while(cin>>f1>>f2>>n)
{
// for(int n=1; n<15; n++)
// {
if(n==)
{
cout<<f1<<endl;
continue;
}
if(n==)
{
cout<<f2<<endl;
continue;
}
ans=f(A,n-);
cout<<ans<<endl;
// }
}
}

E

//3.6下午5点更新

整理了下模板后的E题代码  

//p。s。 刚听队友提到矩阵可以用4*4的,感觉自己6*6蠢了些。。

//p。s。 修改时只需要修改列向量b和矩阵A的初始化即可

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL; LL n,ans;
const int N=;
const LL mod=1e9+;
LL b[]= {,,,,,-}; struct Mat
{
LL mat[N][N];
} A;
Mat Mut(Mat a,Mat b)
{
Mat c;
memset(c.mat,,sizeof(c.mat));
for(int k=; k<N; k++)
for(int i=; i<N; i++)
for(int j=; j<N; j++)
{
c.mat[i][j]+=a.mat[i][k]*b.mat[k][j]%mod;
c.mat[i][j]=c.mat[i][j]%mod;
}
return c;
}
Mat Qpow(Mat a,LL n)
{
Mat c;
for(int i=; i<N; ++i)
for(int j=; j<N; ++j)
c.mat[i][j]=(i==j);
for(; n; n>>=)
{
if(n&) c=Mut(c,a);
a=Mut(a,a);
}
return c;
}
LL cal(Mat A,LL n,LL b[])
{
Mat A_=Qpow(A,n-);
LL ret=;
for(int i=; i<N; i++)
{
ret+=A_.mat[][i]*b[i];
ret%=mod;
}
return (ret+mod)%mod;
}
void init_A()
{
memset(A.mat,,sizeof(A.mat));
A.mat[][]=,A.mat[][]=,A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
A.mat[][]=;
}
int main()
{
init_A();
while(cin>>b[]>>b[]>>n) //b[1]即f1,b[0]即f2
{
ans=cal(A,n,b);
cout<<ans<<endl;
}
}

E——plus

中国(北方)大学生程序设计训练赛(第一周) (D E)的更多相关文章

  1. 中国(北方)大学生程序设计训练赛(第二周) (A B D G)

    比赛链接 A题是KMP,先把A拼接到B的后面,然后利用next数组的意义(包括其具体含义,以及失配时的应用),得到ans #include<bits/stdc++.h> using nam ...

  2. Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)

    Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...

  3. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  4. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  5. 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  6. 《JAVA程序设计》_第一周学习总结

    20175217吴一凡 <java程序设计> 第一周学习总结 虽然已经做好了心理准备,但第一周的学习任务着实让我忙了整整三天,还是挺充实的吧.寒假已经在自己的电脑上安装好了虚拟机,我就在我 ...

  7. 201871010124 王生涛《面向对象程序设计JAVA》第一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...

  8. 201871010132-张潇潇《面向对象程序设计(java)》第一周学习总结

    面向对象程序设计(Java) 博文正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cn ...

  9. 网易云课堂_C语言程序设计进阶_第一周:数据类型:整数类型、浮点类型、枚举类型_1计算分数精确值

    1 计算分数精确值(10分) 题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商, ...

随机推荐

  1. Coursera 机器学习笔记(二)

    主要为第三周课程内容:逻辑回归与正则化 逻辑回归(Logistic Regression) 一.逻辑回归模型引入 分类问题是指尝试预测的是结果是否属于某一个类. 维基百科的定义为:根据已知训练区提供的 ...

  2. 安卓餐厅点餐系统---针对浩然android工作室的一个小白的分析

    昨天刚把浩然android工作室的下载下来了,为了研究下点餐系统的架构,更好的完成手中的项目,便写出一个分析报告(小白的分析,忘见谅!) 本项目app主要用于餐厅无线订餐使用,功能突出餐厅的订餐需求, ...

  3. 夜神模拟器与HBuilder连接/cmd运行提示符/执行夜神模拟器命令/执行HBuilder命令

    第一步:启动HBuilder和夜神模拟器 第二步:通过运行电脑命令CMD进入(电脑运行命令的快捷键是:windows键+R2.Ctrl键与Alt键之间的那个键就是windows键或者点击左下角开始图标 ...

  4. Unslider Web前端框架之图片轮播

    前端框架,前端组件,前端库,都是一个意思,能看源码. 最近做H5小游戏,用到了图片轮播的组件,而且要求支持移动端触屏滑动.一开始用的是nivo slider,但是对大小不一样的图不支持box 的参数设 ...

  5. jQuery 提供多个与 AJAX 有关的方法。

    jQuery 提供多个与 AJAX 有关的方法. 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本.HTML.XML 或 JSON - ...

  6. python 解析docx文档的方法,以及利用Python从docx文档提取插入的文本对象和图片

    首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...

  7. 常见浏览器User-Agent大全

    http://blog.csdn.net/tianjinjianzhan/article/details/51702232

  8. Discuz更改默认搜索模块

    由于网站使用DZ的侧重点不同,在搜索中可能需要更改默认搜索模块 首先找到模板中搜索模块对应的文件,默认模板中搜索模块的地址是 template\default\common\pubsearchform ...

  9. Flash TextField selectable bug block TextEvent.Link solution

    There is an old version Felx SDK bug(in my case it's Flex SDK v3.3.0.4852) that when TextField.selec ...

  10. web开发中前后端传值

    在JavaScript中,页面与页面间的传值需要注意. 比如,我们通过url向下个页面进行传一个数字时,到下个页面进行解析出来后可能是一个字符串.这样会导致一个现象.调试时,发现我要传的值的确传过来了 ...