【jzoj】2018/2/2 NOIP普及组——D组模拟赛

前言

今天五道题,难度做起来感觉很难,其实就是纸老虎233。

正题


题目1:公牛数学(jzoj1896)

就是高精乘

输入

第1..2行:每行包含一个十进制数

输出

第1行:输出两个数乘积

样例输入

11111111111111
1111111111

样例输出

12345679011110987654321


解题思路

高精度不讲


代码

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int a1[51],a2[51],a[251],n1,n2,g,w;
void read()
{string s1,s2;cin>>s1>>s2;n1=s1.size();n2=s2.size();for (int i=1;i<=n1;i++) {a1[i]=s1[n1-i]-48;}for (int j=1;j<=n2;j++) {a2[j]=s2[n2-j]-48;}
}
void cons()
{for (int i=1;i<=50;i++){for (int j=1;j<=50;j++){a[i+j-1]+=a1[i]*a2[j]+g;g=a[i+j-1]/10;a[i+j-1]%=10;}}
}
void write()
{w=200;while (a[w]==0) w--;for (int i=w;i>=1;i--){printf("%d",a[i]);}
}
int main()
{//freopen("bullmath.in","r",stdin);//freopen("bullmath.out","w",stdout);read();cons();write();
}

题目2:愤怒的牛(jzoj1897)

有n个不同距离的牛棚,要放入c只牛,使它们之间的最小距离最大。

输入

第1行:两个用空格隔开的数字N和C。
第2~N+1行:每行一个整数,表示每个隔间的坐标。

输出

输出只有一行,即相邻两头牛最大的最近距离。

样例输入

5 3
1
2
8
4
9

样例输出

3


解题思路

用二分法查找答案,用贪心来判断


代码

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,c,a[100001],l,r,k,sum,mins,mid;
int main()
{//freopen("aggr.in","r",stdin);//freopen("aggr.out","w",stdout);scanf("%d%d",&n,&c);for (int i=1;i<=n;i++) scanf("%d",&a[i]);sort(a+1,a+1+n);//排序l=0;r=a[n];//范围while (l<=r){mid=(l+r)/2;//二分sum=1;//放入1k=1;//记录上一头牛for (int i=2;i<=n;i++){if (a[i]-a[k]>=mid)//如果距离够{sum+=1;//放牛k=i;//记录}}if (sum<c) r=mid-1;else l=mid+1;//二分}printf("%d",l-1);
}

题目3:约数和(jzoj1401)

输入T组数据,然后输入n,求它的所有约数和。

输入

本题有多组数据,第一行一个T,表示有T组数据,下面T行,每行一个正整数N表示要处理的数。

输出

T行,每行一个正整数表示输入中对应的数的约数和。

样例输入

1
12

样例输出

28


解题思路

用开方优化求约数的枚举过程,用f数组记录重复的


代码

#include<cstdio> 
#include<algorithm>
#include<cmath>
using namespace std;
int x,s,t,w,f[5000001];
int main()
{scanf("%d",&t);for (int ti=1;ti<=t;ti++){scanf("%d",&x);if (f[x]!=0) printf("%d\n",f[x]);//输出else{s=0;w=int(sqrt(double(x)));//优化for (int i=1;i<=w;i++){if (x%i==0) {s+=i;//累加if (x/i!=i)s+=x/i;//去重}}printf("%d\n",s);f[x]=s;//记录}}
}

题目4:旅行(jzoj1402)

一条7000km的路上已经知道有若14个旅馆,分别距离原点
0, 990, 1010, 1970, 2030, 2940, 3060, 3930, 4060, 4970, 5030, 5990, 6010, 7000
还加入了n个旅馆,一辆车每天至少走a km,最多走b km,求旅行方案总数。

输入

第一行输入A,第二行输入B,第三行输入N(0<=N<=20),表示在出发之前又新增N个汽车旅馆,接下来N行,每行一个整数m,表示旅馆离起点的距离(0

输出

输出一共有多少种旅行方案。

样例输入

1
500
0

样例输出

0


解题思路

这里用dp,如果可以加入就累加方案数


#include<cstdio>
#include<algorithm>
using namespace std;
int a,b,n,f[41],s;
int way[41]={0,0,990,1010,1970,2030,2940,3060,3930,4060,4970,5030,5990,6010,7000};
//预处理
int main()
{scanf("%d%d%d",&a,&b,&n);n+=14;for (int i=15;i<=n;i++) scanf("%d",&way[i]);sort(way+1,way+1+n);//快排f[1]=1;              for (int i=2;i<=n;i++){for (int j=1;j<i;j++){if (way[i]-way[j]>=a && way[i]-way[j]<=b){f[i]+=f[j];//dp}}}for (int i=1;i<=n;i++) if (way[i]+b>=7000) s+=f[i];//累加可以到达宾馆的方案printf("%d",f[n]);//输出
}

题目5:逆序统计(1403)

给出n个数字,求出逆序对为k的排列数。

输入

从文件COUNT.IN输入。输入第一行有两个整数N 和K。其中(N<=100,K<=N*(N-1)/2)

输出

将1..N 的逆序对数量为K的特定排列的数量输出到文件COUNT.OUT。为了避免高精度计算,请将结果mod 10000以后再输出!

样例输入

5 3

样例输出

15


解题思路

从两个方向[i][j-1],[i-1][j],然后减去重复


代码

#include<cstdio>
using namespace std;
int n,k,f[101][4951];
int main()
{scanf("%d%d",&n,&k);f[0][0]=1;//初始化for (int i=1;i<=n;i++)for (int j=0;j<=k;j++)if(j)//避免越界{if (i>j) f[i][j]=(f[i-1][j]+f[i][j-1])%10000;//动态转移else f[i][j]=(f[i-1][j]+f[i][j-1]-f[i-1][j-i])%10000;//动态转移}else f[i][j]=f[i-1][j];f[n][k]=(f[n][k]+10000)%10000;//避免负数printf("%d",f[n][k]);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中常见的几种内部类,你会几个?(未完)

点击上方蓝色关注我们&#xff01;大家好&#xff0c;我是雄雄&#xff0c;今天给大家介绍的是java中的几种内部类。java中常见的几个内部类&#xff0c;你会几个&#xff1f;我会四个&#xff01;在看每个新知识点时&#xff0c;我们不禁有这样或者那样的疑问&#xff0c;比如…

通俗理解信息熵

转载自 通俗理解信息熵 通俗理解信息熵 前段时间德川和我讲解了决策树的相关知识&#xff0c;里面德川说了一下熵&#xff0c;今天整理了一下&#xff0c;记录下来希望对大家理解有帮助~ 1、信息熵的公式 先抛出信息熵公式如下&#xff1a; 其中代表随机事件X为的概率&…

程序、进程、线程

程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码&#xff0c;静态对象。 进程(process) 是程序的一次执行过程&#xff0c;或是正在运行的一个程序。是一个动态的过程&#xff1a;有它自身的产生、存在和消亡的过程。——生命周期 如…

.NET Core 2.0 Preview 2为开发人员带来改进

Microsoft发布了.NET Core 2第二个预览版&#xff08;Preview 2&#xff09;&#xff0c;该版本可用于Mac OS X、Linux和Windows平台。Preview 2首次给出了对所有平台上各种软件包和安装程序的统一命名模式。所有的运行时文件将以"dotnet-运行时名称”命名&#xff0c;而S…

java中,剩下的这两个内部类不太好理解!

点击上方蓝色关注我们&#xff01;大家好&#xff0c;我是雄雄&#xff0c;今天我们接着昨天的分享&#xff0c;将剩余的两个内部类&#xff08;方法内部类和匿名内部类&#xff09;结束掉&#xff0c;这两个内部类都不太好理解。昨天的推文&#xff1a;java中常见的几种内部类…

【jzoj】2018.2.3NOIP普及组——D组模拟赛

前言 万年D组系列… 正题 题目1&#xff1a;数池塘&#xff08;jzoj1898&#xff09; 有一个地方有一些积水&#xff0c;连着的积水是一个池塘&#xff0c;求池塘数。 输入 第1行&#xff1a;由空格隔开的两个整数&#xff1a;N和M 第2..N1行&#xff1a;每行M个字符代表…

并行与并发

**并行&#xff1a;**多个CPU同时执行多个任务。比如&#xff1a;多个人同时做不同的事。 **并发&#xff1a;**一个CPU(采用时间片)同时执行多个任务。比如&#xff1a;秒杀、多个人做同一件事。

通俗理解条件熵

转载自 通俗理解条件熵 通俗理解条件熵 前面我们总结了信息熵的概念通俗理解信息熵,这次我们来理解一下条件熵。 1、信息熵以及引出条件熵 我们首先知道信息熵是考虑该随机变量的所有可能取值&#xff0c;即所有可能发生事件所带来的信息量的期望。公式如下&#xff1a; 我…

WebAssembly:随风潜入夜

What&#xff1f; WebAssembly 是一种二进制格式的类汇编代码&#xff0c;可以被浏览器加载和并进一步编译成可执行的机器码&#xff0c;从而在客户端运行。它还可以作为高级语言的编译目标&#xff0c;理论上任何语言都可以编译为 WebAssembly。 我们知道汇编语言就是机器码的…

让java的多重继承成为现实!

点击上方蓝色关注我们&#xff01;大家好&#xff0c;我是雄雄&#xff0c;前两天给大家说了说java中的四种内部类&#xff0c;推文分别为&#xff1a;静态内部类和成员内部类方法内部类和匿名内部类在内部类的基础上&#xff0c;我们来看看今天的知识点儿。众所周知&#xff0…

jzoj1751-Span(每日C组)【并查集,贪心】

题目 有n个村&#xff0c;m条路&#xff0c;给n-1条路刷油漆连接n个村&#xff0c;让最长边与最短边的长度差最小。 输入输出&#xff08;建议跳过&#xff09; Input 第一行给出一个数字TOT&#xff0c;代表有多少组数据,Tot<6 对于每组数据&#xff0c;首先给出N&…

线程优先级

MAX_PRIORITY&#xff1a;10 MIN _PRIORITY&#xff1a;1 NORM_PRIORITY&#xff1a;5 -->默认优先级 2.如何获取和设置当前线程的优先级&#xff1a; getPriority():获取线程的优先级 setPriority(int p):设置线程的优先级 说明&#xff1a;高优先级的线程要抢占低优先级线…

通俗理解决策树算法中信息增益的

转载自 通俗理解决策树算法中信息增益的 通俗理解决策树算法中的信息增益 在决策树算法的学习过程中&#xff0c;信息增益是特征选择的一个重要指标&#xff0c;它定义为一个特征能够为分类系统带来多少信息&#xff0c;带来的信息越多&#xff0c;说明该特征越重要&#x…

列表

# 列表 a [20, 40] a a [50] # 将原列表的元素和新列表的元素依次复制到新的列表对象中 a.extend([10, 20]) # 将目标列表的所有元素添加到本列表的尾部&#xff0c;属于原地操作&#xff0c;不创建新的列表对象。 a.insert(2, 100) b a * 3 # 乘法扩展 生成一个新列表 …

DDD理论学习系列(6)-- 实体

1.引言 实体对应的英语单词为Entity。提到实体&#xff0c;你可能立马就想到了代码中定义的实体类。在使用一些ORM框架时&#xff0c;比如Entity Framework&#xff0c;实体作为直接反映数据库表结构的对象&#xff0c;就更尤为重要。特别是当我们使用EF Code First时&#xf…

班级日常 | 一天一瞬间!

点击上方蓝色关注我们&#xff01;欢迎来到今天的“一天一瞬间”专栏在学习word操作时&#xff0c;同学们的兴趣还是较高的&#xff0c;但是&#xff0c;比起“一天一个黑科技”来说&#xff0c;还是差了许多&#xff01;前面两天都是学的一些简单的DOS命令&#xff0c;比如进某…

jzoj1370-飞船【RMQ初见】

前言 RMQ就是一个在一个序列中来多次询问某段的最大值的快速的方法。其他自行度娘 正题 题目 一些成直线的星星&#xff0c;给出m段询问&#xff0c;求一段距离间最大的星星 输入输出与样例&#xff08;建议无视&#xff09; 输入 第一行输入N,M 接下来一行N个整数&#…

double类型进行比较排序

不用两个double直接进行强转是为了防止精度的损失 方式一&#xff1a; Overridepublic int compareTo(Object o) { // System.out.println("**************");if(o instanceof Goods){Goods goods (Goods)o;//方式一&#xff1a;if(this.price > goods.p…

ASP.NET Core Web 资源打包与压缩

本文将介绍使用的打包和压缩的优点&#xff0c;以及如何在ASP.NET Core应用程序中使用这些功能。 概述 在ASP.Net中可以使用打包与压缩这两种技术来提高Web应用程序页面加载的性能。通过减少从服务器请求的次数和减少资源文件的体积来提高加载性能。 打包是一地将多个文件&a…

班级日常分享 | 一天一瞬间!

点击上方蓝色关注我们&#xff01;介于最近同学们的学习劲头十足的样子&#xff0c;我和丁老师商量决定晚上不布置作业&#xff0c;看一部电影放松放松&#xff01;昨晚下晚自习后&#xff0c;零零散散的还有一部分同学在教室里面学习&#xff0c;值班老师都催促多次&#xff0…