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 ...
随机推荐
- docker学习记录1
起因 现在自己学习微服务,服务器越来越多,虽然自己写了一些shell脚本来安装需要的软件,比如mysql,redis,jdk等等,但是还是好麻烦.希望学习docker能够快速安装部署这些东西. 记录一 ...
- 战地记者也在使用Scrum
2011年埃及骚乱 2011年1月25日开始,埃及人民由于不满物价上涨.失业率高和腐败等问题,埃及多个城市发生民众大规模集会,要求总统穆巴拉克下台.本来这只是一场小规模的抗议活动,却如星火燎原般点燃了 ...
- lucene3.0范围查找
在lucene3.0以上版本中,范围查询也有很大的变化,RangeQuery已经不推荐使用,使用TermRangeQuery和NumericRangeQuery两个替代.TermRangeQuery: ...
- mysql存储过程(procedure)
#创建带参数的存储过程 delimiter // ),out p int) begin ; end // delimiter call pro_stu_name_pass(@n,@p); select ...
- Centos7安装jekyll
1.首先需要安装相应的依赖包及所需要的工具 sudo yum install nodejs npm ruby ruby-devel rubygems git 2.修改gem源 国内 使用的淘宝的更新源 ...
- 修改 cmd 控制台字体、巧用 FontLink 使中英文独立设置
众所周知,Windows 中 cmd 控制台窗口的字体难看,但是修改注册表是可以实现修改其字体的,但很多很棒的编程字体是没有中文的,所以在显示中文时直接调用了宋体,这绝妙的反差实在是 不忍直视.但是, ...
- Mask_RCNN训练自己的模型(练习)
- Openssl crl命令
一.简介 crl命令用于处里PME或DER格式的CRL文件 二.语法 openssl crl [-inform PEM|DER] [-outform PEM|DER] [-text] [-in fil ...
- Rabbit MQ参考资料
https://github.com/ServiceStack/rabbitmq-windows/blob/master/README.md https://github.com/rabbitmq/r ...
- centos环境下如何导出数据库
MySQL数据库的导入导出可以用数据库备份工具mysqldump mysqldump工具是mysql自带的一个非常方便的一款小工具,存在mysql安装目录的/usr/local/mysql/bin ( ...