博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客寒假算法基础集训营2 A:处女座的签到题(排序)+C:处女座的砝码(思维)+J:处女座的期末复习(贪心)
阅读量:3899 次
发布时间:2019-05-23

本文共 1904 字,大约阅读时间需要 6 分钟。

【题A】

【题解】

由于题目条件,x,y坐标的绝对值均在1e9以下,面积可能会到达1e18,所以无法用double储存。三角形的面积等于相邻两边叉积的一半,所以三角形面积的两倍一定是整数,我们可以用long long来储存,最后特判输出”.00”或”.50”。

对于找第k大,时间复杂度为O(n),可以利用nth_element。

nth_element()函数(取容器中的第n大值)

头文件:#include<algorithm>

作用:nth_element作用为求第n大的元素,并把它放在第n位置上,下标是从0开始计数的,也就是说求第0小的元素就是最小的数。

注意:nth_element()函数不过将第n大的数排好了位置,并不返回值。

【代码】

#include 
using namespace std;#define ll long longstruct p{ ll x,y;}f[85];int main(){ int t; scanf("%d",&t); while(t--) { int n,k; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) scanf("%lld%lld",&f[i].x,&f[i].y); vector
v; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) for(int k=j+1;k<=n;k++) { ll area=abs((f[j].x-f[i].x)*(f[k].y-f[i].y)-(f[k].x-f[i].x)*(f[j].y-f[i].y)); v.push_back(area); } nth_element(v.begin(),v.begin()+v.size()-k,v.end()); ll ans=v[v.size()-k]; if (ans%2==0) printf("%lld.00\n",ans/2); else printf("%lld.50\n",ans/2); } return 0;}

【题C】

【题解】

对于每个砝码,可以选择放左边、不放、放右边三种情况,所以可以按三进制进行排列即可。

选择砝码如下:1,3,9,27,…选m个数最多能称出的重量为:$\displaystyle\sum_{i=0}^{m-1} 3^i$          注意高精度。

【代码】

import java.math.BigDecimal; import java.util.Scanner; import java.math.BigInteger;  public class Main {    public static void main(String args[])    {        Scanner scan = new Scanner(System.in);        BigInteger a;        BigInteger b = new BigInteger("1");        BigInteger c=new BigInteger("3");        BigInteger ad=new BigInteger("1");        a = scan.nextBigInteger();        int cnt=1;        while(a.compareTo(b)>0)        {            cnt++;            b=b.multiply(c);            b=b.add(ad);        }        System.out.println(cnt);        return;    }}

【题J】

【题解】

优先复习先考的科目,如果复习完超过考试时间就复习不完输出NO,否则加上考试的两小时。简单贪心。

【代码】

typedef long long int ll;const int maxn=1e5+5;struct p{    ll a,b;}f[maxn];bool cmp(p x,p y){    return x.b

 

转载地址:http://efben.baihongyu.com/

你可能感兴趣的文章
iOS 第4课 UILabel
查看>>
[已解决]junit.framework.AssertionFailedError: No tests found in
查看>>
“服务器端跳转”和“客户端跳转”的区别
查看>>
Datatables基本初始化——jQuery表格插件
查看>>
Servlet监听器——实现在线登录人数统计小例子
查看>>
Oracle笔记——简单查询语句 Oracle入门
查看>>
基于Hibernate和Struts2的用户管理系统小案例
查看>>
打开.class文件的方法
查看>>
基于windows平台Git+GitHub+Hexo搭建个人博客(一)
查看>>
基于windows平台Git+GitHub+Hexo搭建个人博客(二)
查看>>
Windows平台下SVN安装配置及使用
查看>>
python简便的编辑工具:jupyter notebook
查看>>
使用pip安装的时候出现 ModuleNotFoundError: No module named ‘pip‘
查看>>
Selenium自动化测试(八)之上传文件
查看>>
Selenium UI自动化(Java篇)
查看>>
使用Fiddler模拟弱网进行测试
查看>>
使用POI读取Excel测试用例
查看>>
记一次数据推送的异常解决端口解决
查看>>
linux、mysql、nginx、tomcat 性能参数优化
查看>>
Nginx使用Linux内存加速静态文件访问
查看>>