nowcoder(牛客网)OI测试赛2 解题报告
qwq听说是一场普及组难度的比赛,所以我就兴高采烈地过来了qwq

然后发现题目确实不难qwq。。。。。但是因为蒟蒻我太蒻了,考的还是很差啦qwq
orz那些AK的dalao们qwq
赛后闲来无事,弄一篇解题报告好了qwq
T1 无序组数
和数学相关的一个题目吧,因为题目的数据范围很小,所以可以先预处理出每个数的约数个数(包括1和它本身)
然后下面自然是\(sum[a]*sum[b]\)减去重复的了qwq
然后重复的话自然是最大公约数的因数个数组合,因为不能重复,那么就是\(sum[gcd(a,b)]*(sum[gcd(a,b)]-1)/2\).
qwq 代码是参考一位大佬改的,蒟蒻我写的比较麻烦,而且因为比较麻烦所以出了点锅,OI赛制中RE掉了......
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
long long sum[100010];
int n=100010,k;
int main()
{
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j+=i)
sum[j]++;
cin>>k;
while(k--)
{
int a,b;
cin>>a>>b;
int kkk=__gcd(a,b);
printf("%lld\n",1LL*(sum[a]*sum[b]-sum[kkk]*(sum[kkk]-1)/2));
}
return 0;
}
T2 路径数量
这题是个递推,然而我打了搜索。。。。啊,我太蒻了qwq,在这里放上Mayfly dalao的递推代码qwq(顺便orz一下)
其中\(sum[x][y]\)表示到节点x,经过y条边的方案数,如果\(a[i][j]\)是真的话,就更新它。
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
long long sum[50][50],a[50][50];
int n,k;
int main()
{
sum[1][0]=1;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(int q=1;q<=k;q++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j])
sum[j][q]+=sum[i][q-1];
cout<<sum[n][k]<<endl;
return 0;
}
T3 数列下标
或许可以用STL水过?不过我是用单调栈维护的.......就是从右边往左边扫,维护最大值和对应下标qwq
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
using namespace std;
int n;
long long a[1000010];
stack<pair<int,long long> >st;
int ans[1000010];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
st.push(make_pair(0,1e10));
for(int i=n;i>=1;i--)
{
while(a[i]>=st.top().second) st.pop();
ans[i]=st.top().first;
st.push(make_pair(i,a[i]));
}
for(int i=1;i<=n;i++)
printf("%d ",ans[i]);
cout<<endl;
return 0;
}
T4 星光晚餐
就是只有完全平方数才有奇数个约数个数啊,所以直接\((long long)sqrt(x)\)就好了qwq
T5 括号序列
经过严谨的思(xia)考(cai),我们可以发现,每多两对匹配不了的括号,ans数量就要+1
所以说。。。。。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,sum=0,ans=0;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
char cur;
cin>>cur;
if(cur==')')
{
if(sum<=0)
ans++;
else sum--;
}
else
sum++;
}
printf("%d\n",(ans+1)/2);
}
T6 假的数学游戏
因为题目中给过了数据点(真神奇!!),所以打表就好啦qwq
至于怎么打表呢,我们要暴力地判断大小,但是因为数据太大了,没办法,只能用取\(log\)来判断大小。
至于\(log_{10}^{x^x}=x*log_{10}^x, log_{10}^{a*b}=log_{10}^a+log_{10}^b\)这些的就不多说了,应该大家都知道的qwq
nowcoder(牛客网)OI测试赛2 解题报告的更多相关文章
- nowcoder(牛客网)OI测试赛3 解题报告
昨天因为胡搞了一会儿社团的事情,所以错过(逃过)了nowcoder的测试赛..... 以上,听说还是普及组难度qwq,而且还有很多大佬AK(然而我这么蒻肯定还是觉得有点难度的吧qwq) 不过我还是日常 ...
- 牛客网多校赛第9场 E-Music Game【概率期望】【逆元】
链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
- 牛客网-湘潭大学校赛重现H题 (线段树 染色问题)
链接:https://www.nowcoder.com/acm/contest/105/H来源:牛客网 n个桶按顺序排列,我们用1~n给桶标号.有两种操作: 1 l r c 区间[l,r]中的每个桶中 ...
- 牛客网多校赛第九场A-circulant matrix【数论】
链接:https://www.nowcoder.com/acm/contest/147/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
- 牛客网多校赛第七场J--Sudoku Subrectangle
链接:https://www.nowcoder.com/acm/contest/145/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...
- 牛客网多校赛第七场--C Bit Compression【位运算】【暴力】
链接:https://www.nowcoder.com/acm/contest/145/C 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524 ...
- 牛客网多校赛第七场A--Minimum Cost Perfect Matching【位运算】【规律】
链接:https://www.nowcoder.com/acm/contest/145/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
- 牛客练习赛 小A与任务 解题报告
小A与任务 链接: https://ac.nowcoder.com/acm/contest/369/B 来源:牛客网 题目描述 小A手头有 \(n\) 份任务,他可以以任意顺序完成这些任务,只有完成当 ...
- 题解——牛客网OI赛制测试赛2
T1 规律题 考虑先全部选中再去重即可 #include <cstdio> #include <algorithm> #include <cstring> #inc ...
随机推荐
- Elasticsearch-PHP 命名空间
命名空间 客户端有很多命名空间,通常能够暴漏出他管理的功能.命名空间对应Elasticsearch各种管理的端点.如下是完成的命名空间的列表: 命名空间 功能 indices() 以指数为中心的统计数 ...
- MongoDB系列[2]:MongoDB导入导出以及数据库备份
PS: 以下所有操作都是基于MongoDB自带的工具进行的,所以操作时一定要手动切换到Mongodb的bin目录下面,并且使用管理员权限运行命令 导出工具 mongoexport 概念: mongoD ...
- linux命令详解2-文件管理,查看文件命令
1. cat命令(tac) ----连接文件,并打印出来(顺序打印)与tac命令类似只不过,tac命令是逆序打印 [语法] cat [OPTION]... [FILE]... [选项] -A:显示所有 ...
- zt <Windows Image Acquisition (WIA)> from msdn
Windows Image Acquisition (WIA) Windows Image Acquisition (WIA) is the still image acquisition pla ...
- 编译gcc5.1.0时的报错
编译安装gcc5.1.0时出现如下报错: configure: error: error verifying int64_t uses long long 这是由于没有安装gcc_c++导致的,安装下 ...
- java aop 日志打印 正则设置
package tz.lion.Utils.aop; import com.alibaba.fastjson.JSON;import org.springframework.web.multipart ...
- LIN通讯
1.定义 LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议.其目标定位于车身网络模块节点间的低端通信,主要用于智 ...
- linux系统中的变量
一.定义 所谓的变量,就是就是利用一个特定的"名称"(name)来存取一段可以变化的"值"(value),简单说来就是“用一个名称储存一个数值”. 二.设定 ...
- 以女朋友为例讲解 TCP/IP 三次握手与四次挥手
背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声 ...
- 一个新手后端需要了解的前端核心知识点之margin(二)
最近以开发自己博客网站为出发点开始决心打牢几个非常重要的前端知识点: margin,这个在我刚刚接触编程的时候留下的困扰的东西,一开始只想着怎么快速开发自己的网站,别人的终归是别人的,想要挖墙脚,必须 ...