解题报告(牛客OI周赛7-普及组)
怎么评价呢?如果你什么算法都不会,纯模拟250+这个样子趴
某天,一只可爱的肥橘喵在路上走,突然遇到了一个怪人,那怪人自称PM6,“小肥喵,这里有一道水题,答对了我就请你吃狗肉,答错了你就请我吃猫肉!”
喵咪瑟瑟发抖:“QAQ什么题?”
PM6道:“给你坐标轴上的N个点,求出对于每个点,有多少个点的 X 坐标和 Y 坐标都大于它。”
毫不意外,蠢肥喵完全不会这道题并面临着被做成猫肉火锅的危险,求求你救救喵咪!
分析:数据范围1~1000,直接上o(n^2)暴力枚举即可(全场最水.
#include<bits/stdc++.h>
using namespace std;
int n;
struct node
{
int x,y;
}p[1005];
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)cin>>p[i].x>>p[i].y;
for(int i=1;i<=n;i++)
{
int cnt=0;
for(int j=1;j<=n;j++)
if(p[j].x>p[i].x&&p[j].y>p[i].y)cnt++;
cout<<cnt<<endl;
}
}
某天,一只可爱的小兔砸在路上蹦蹦跳跳地走着,怪人PM6出现了,于是小兔子被盯上了。
PM6:“免子。哦不,小兔子。你长得真好…不对,真可爱。我这里有一道很容易很容易的题目,答对了我就请你吃萝卜,答错了你就请我吃兔肉,好不好呀~~?”
小兔砸:“萝卜!?好呀好呀好呀。”于是笨笨的兔纸入套了。
PM6:“我这里有一个由 N 个数组成的序列,给你 M 个询问,每个询问会给你一个数 X ,对于每个询问,你要回答出序列中与这个值最接近的元素。”
听完题后,兔子吓成一坨免子了,面临着变成红烧兔头的危险,求求你救救兔子!
分析:其实粗看模拟会超时,但是就是a了我也无话可说...最接近的元素用绝对值表示即可
还有一开始将minn设为INF 一开始将minn设为INF!! 一开始将minn设为INF!!!如果设成99999之类只能20分,牛客数据就是这样
#include<bits/stdc++.h>
using namespace std;
int a[100005],n,m;
void search(int x)
{
int minn=0x3f3f3f3f,temp[100005];
memset(temp,0,sizeof(temp));
for(int i=1;i<=n;i++)
{
if(a[i]==x){cout<<a[i]<<endl;return ;}
temp[i]=abs(a[i]-x);
minn=min(temp[i],minn);
}
for(int i=1;i<=n;i++)if(minn==temp[i]){cout<<a[i]<<endl;return; };
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n);
cin>>m;
while(m--)
{
int x;
cin>>x;
search(x);
}
return 0;
}
另一天,一只可爱的围着围巾的肥企鹅在路上摇摇晃晃地走着,遇上了迎面走来的打着饱嗝的PM6。小企鹅预感不妙,这不就是最近有名的恶人PM6么!吓得立刻扭头就想跑。
PM6:“小火汁,站住!我不吃你(谁叫你是保护动物)。我这有一道简单题,如果你答对了,我就给你吃鱼肉,如果你答错了,就免费帮我充游戏币!”
企鹅:“_(:3J∠)_(默默摘掉围巾)”
PM6:“我给你一个文本串 S ,再给你两个串A、B,你要将文本串中的 A 都转换成 B ,转换后的字符不再参与转换,输出最终的文本串。”
求求你救救企鹅!
分析:字符串KMP,笔者太弱今天才get到这个技能点,不过怎么说呢,用stl一时爽,一直用一直爽!!!
很简单的字符串函数应用
#include<bits/stdc++.h>
using namespace std;
string a,b,c;
int main()
{
cin>>a>>b>>c;
while(1)
{
int k=a.find(b);
if(k>=a.length())break;
a.erase(k,b.length());
a.insert(k,c);
}
cout<<a;
return 0;
}
可能很多人要吐槽为什么标题不是“救救blabla”了。
怪人PM6喜欢数糖纸,不同的糖纸有不同的颜色,一共有 N 张糖纸,第 i 张糖纸颜色为 Ci ,它们的位置都是固定的。PM6喜欢五彩缤纷的糖纸,所以他不希望有重复的颜色。他有一次机会,可以收集任意一段连续区间内的糖纸。求出PM6最多能收集多少张糖纸。
!分析:题意很清楚,要用到尺取法,通过l与r不断移动来找最大连续区间。如果r移动到一个有标记的数字一切从头,r之前数字标记全清零,否则r继续移动,持续更新ans=max(ans,r-l)
#include<bits/stdc++.h>
using namespace std;
int a[1000005],n,l,r,ans,flag[1000000005];
int main()
{
ios::sync_with_stdio(false);
cin>>n;
l=r=1;
for(int i=1;i<=n;i++)cin>>a[i];
while(r<=n)
{
if(!flag[a[r]])
{
flag[a[r]]=1;
r++;
ans=max(ans,r-l);
}
else
{
while(flag[a[r]])flag[a[l]]=0,l++;
}
}
cout<<ans;
return 0;
}
- 那些年,我们一起碰到过的骗局
- Spring Security (五) 动手实现一个IP_Login
- 史上最全Linux提权后获取敏感信息方法
- Spring Security (四) 核心过滤器源码分析
- Spring Security (三) 核心配置解读
- Spring Cloud配置中心获取不到最新配置信息的问题
- 总是听别人说响应式布局,原来这么简单
- Spring Cloud Zuul重试机制探秘
- Eureka中RetryableClientQuarantineRefreshPercentage参数探秘
- Edgware.RC1中ZuulFallbackProvider的改进
- JPA的多表复杂查询:详细篇
- 尝试使用Memcached遇到的狗血问题
- Enumerable#Zip 实现一下
- 更新自己,不要影响其他人
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 国密SSL协议之Java编程
- 7. Jackson用树模型处理JSON是必备技能,不信你看
- epoll,求知者离我近点
- SOCKET网络编程 (通俗易懂入门篇)
- 进程 · 全家桶
- Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝慢慢看(2)
- Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝里慢慢看 (1)
- 种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林
- 【Linux内核】进程管理
- Django后台管理界面修改(代码修改)
- OpsnSSH抓包分析 | SSH协议分析
- 搭建简易的物联网服务端和客户端-第三次增补(二十二)
- ReentrantLock源码解析
- Nodejs连接PostgreSQL
- ReentrantReadWriteLock源码解析