折腾笔记-计蒜客t1156AC记
欢迎查看原题地址
此题思路(最初版):
暴力,得出最相近的,1000ms呢,除非数据超大,否则不超时。
说明:
爆搜,搜出结果,时间复杂度基本 $O(n^2)$
注:本文所有时间(与空间)复杂度仅为估计,不排除坑爹数据卡大复杂度的可能
#include <bits/stdc++.h>
using namespace std;
bool kkk(int a,int k) {
int tmp = abs(a);
//cout<<"data:"<<tmp<<"k:"<<k<<endl;
if(tmp<k) {
return 1;
} else {
return 0;
}
}
int main() {
long long n,m;
long long a[100001],b[10001];
cin>>n;
for(int i = 0;i<n;++i) {
cin>>a[i];
}
cin>>m;
for(int i = 0;i<m;++i) {
int k;
cin>>k;
int mink = 2345678;
int minv = 2345678;
for(int j = 0;j<max(n,m);++j) {
if(k-a[j]==0) {
minv = a[j];
break;
}
if(kkk(k-a[j],mink)) {
mink = k-a[j];
minv = a[j];
}
}
cout<<minv<<endl;
}
return 0;
}
详细提交代码:点击查看
详细提交结果:
测试数据共20组:
$\color{green}{AC}$ 6组
$\color{navy}{TLE}$ 14组
$\color{red}\text{总得分:30}$
于是,我开始探究为什么没过。。。
经研究表明:有一部分数据很大,一般的暴力水过是困难(难上加难)了,与其纠结所谓“怎么水过多骗骗分”还不如花一点时间想想正解,终于,功夫不负有心人,我找到了upper_bound()
先看看他的用法:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[10] = {1,2,3,4,5,6,11,12,13,14};
int b,c;
b = upper_bound(a,a+10,7)-a;
cout<<a[b]<<endl;
return 0;
}
这是实例,暂时不提供运行结果。
那么我们不难想到使用upper_bound()查找不小于这个数的最大数那么。。。
有两种情况:
设不小于这个数的最大数 = a;
一种:a==n
二种:a< n
那么就出来了这段代码:
#include <bits/stdc++.h>
using namespace std;
int kkk(int a,int b,int k) {
int tmp1 = abs(k-a);
int tmp2 = abs(k-b);
if(tmp1==0) {
return a;
}
if(tmp2==0) {
return b;
}
if(tmp2>tmp1){
return a;
} else {
return b;
}
}
int main() {
long long n,m;
long long a[100001];
cin>>n;
for(int i = 0;i<n;++i) {
cin>>a[i];
}
sort(a,a+n);
cin>>m;
for(int i = 0;i<m;++i) {
int m;
cin>>m;
int j = upper_bound(a,a+n,m)-a;
int k = j-1;
//cout<<a[j]<<" "<<a[k]<<" "<<m<<endl;
cout<<kkk(a[j],a[k],m)<<endl;
}
return 0;
}
详细提交代码:点击查看
详细提交结果:
测试数据共20组:
$\color{green}{AC}$ 20组
$\color{green}\text{总得分:100}$
折腾笔记-计蒜客t1156AC记的更多相关文章
- 折腾笔记-计蒜客T1167AC记
查看原题 原题地址 思路: 判断回文+判断质数 初步代码: #include <bits/stdc++.h> using namespace std; bool prime(int n) ...
- 折腾笔记-计蒜客T1158-和为给定数AC记
欢迎查看原题 1.简单题目叙述 蒜头君给出若干个整数,询问其中是否有一对数的和等于给定的数. 输入格式 共三行: 第一行是整数 ),表示有 n 个整数. 第二行是 n 个整数.整数的范围是在 0 到 ...
- 计蒜客T1846AC记
查看原题: 原题地址 初步思路: 采用贪心法求解,贪心策略如下: 排序,优先买最便宜的. 累加总数ans 初步代码: (楼主评语:其实其他地方的编程实现不太重要,贪心策略才是问题) #include ...
- 计蒜客 NOIP 提高组模拟竞赛第一试 补记
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...
- [计蒜客] 矿石采集【记搜、Tarjan缩点+期望Dp】
Online Judge:计蒜客信息学3月提高组模拟赛 Label:记搜,TarJan缩点,树状数组,期望Dp 题解 整个题目由毫无关联的两个问题组合成: part1 问题:对于每个询问的起点终点,求 ...
- 计蒜客 作弊揭发者(string的应用)
鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...
- 计蒜客的一道题dfs
这是我无聊时在计蒜客发现的一道题. 题意: 蒜头君有一天闲来无事和小萌一起玩游戏,游戏的内容是这样的:他们不知道从哪里找到了N根不同长度的木棍, 看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形. ...
- 计蒜客模拟赛5 D2T1 成绩统计
又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...
- 计蒜客 等边三角形 dfs
题目: https://www.jisuanke.com/course/2291/182238 思路: 1.dfs(int a,int b,int c,int index)//a,b,c三条边的边长, ...
随机推荐
- Java基础(四)注释
1.类注释 类注释必须放在import语句之后,类定义之前.eclipse中使用Shift + Alt + J快捷键添加类注释. 2.方法注释 每一个方法注释必须放在所描述的方法之前.除了通用标记之外 ...
- 数据结构(三十二)图的遍历(DFS、BFS)
图的遍历和树的遍历类似.图的遍历是指从图中的某个顶点出发,对图中的所有顶点访问且仅访问一次的过程.通常有两种遍历次序方案:深度优先遍历和广度优先遍历. 一.深度优先遍历 深度优先遍历(Depth_Fi ...
- krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦
博客地址:https://ainyi.com/81 基于 element ui 的==升级版穿梭框组件==发布到 npm 啦 看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构 ...
- 【Linux系列】Linux基础知识整理
Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...
- Shiro笔记---身份验证
1.shiro有哪些主要功能 2.搭建shiro环境(*) idea2018.2.maven3.5.4.jdk1.8 项目结构: pom.xml: <dependencies> < ...
- [2018-01-12] laravel--ORM
建立模型 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { / ...
- [考试反思]0718 NOIP模拟测试5
最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...
- BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱(这是我写过最骚气的dp!)
题目描述 贝西和邦妮找到了一个藏宝箱,里面都是金币! 但是身为两头牛,她们不能到商店里把金币换成好吃的东西,于是她们只能用这些金币来玩游戏了. 藏宝箱里一共有N枚金币,第i枚金币的价值是Ci.贝西 ...
- 常用样式积累-scss
/** * author ctj -- 自定义公用样式 */ /*清除浮动*/ .clearfix:after { height:; content: ''; display: block; clea ...
- pandas处理excel的常用方法技巧(上)
1. 导库 import pandas as pd 2. 读取excel文件 这里要注意的就是第二个参数header如果不设置,pandas会默认把excel的第一行当作columns,header= ...