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 解题报告的更多相关文章

  1. nowcoder(牛客网)OI测试赛3 解题报告

    昨天因为胡搞了一会儿社团的事情,所以错过(逃过)了nowcoder的测试赛..... 以上,听说还是普及组难度qwq,而且还有很多大佬AK(然而我这么蒻肯定还是觉得有点难度的吧qwq) 不过我还是日常 ...

  2. 牛客网多校赛第9场 E-Music Game【概率期望】【逆元】

    链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  3. 牛客网-湘潭大学校赛重现H题 (线段树 染色问题)

    链接:https://www.nowcoder.com/acm/contest/105/H来源:牛客网 n个桶按顺序排列,我们用1~n给桶标号.有两种操作: 1 l r c 区间[l,r]中的每个桶中 ...

  4. 牛客网多校赛第九场A-circulant matrix【数论】

    链接:https://www.nowcoder.com/acm/contest/147/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  5. 牛客网多校赛第七场J--Sudoku Subrectangle

    链接:https://www.nowcoder.com/acm/contest/145/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  6. 牛客网多校赛第七场--C Bit Compression【位运算】【暴力】

    链接:https://www.nowcoder.com/acm/contest/145/C 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524 ...

  7. 牛客网多校赛第七场A--Minimum Cost Perfect Matching【位运算】【规律】

    链接:https://www.nowcoder.com/acm/contest/145/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  8. 牛客练习赛 小A与任务 解题报告

    小A与任务 链接: https://ac.nowcoder.com/acm/contest/369/B 来源:牛客网 题目描述 小A手头有 \(n\) 份任务,他可以以任意顺序完成这些任务,只有完成当 ...

  9. 题解——牛客网OI赛制测试赛2

    T1 规律题 考虑先全部选中再去重即可 #include <cstdio> #include <algorithm> #include <cstring> #inc ...

随机推荐

  1. linux 下的mysql 连接报错

    报错: Fri Jul 28 16:28:52 CST 2017 WARN: Establishing SSL connection without server’s identity verific ...

  2. MongoDB系列[2]:MongoDB导入导出以及数据库备份

    PS: 以下所有操作都是基于MongoDB自带的工具进行的,所以操作时一定要手动切换到Mongodb的bin目录下面,并且使用管理员权限运行命令 导出工具 mongoexport 概念: mongoD ...

  3. VS2008调用VS2012的WCF服务的方式和遇到的问题

    1 用添加服务引用的懒方式 2 用http请求方式 3 客户端自己定义一个Contract,跟服务端的一样(可以只写要使用的方法,不用全部写完). 由于规范要求,前两种都不能用,后面根据同事的描述,产 ...

  4. Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统

    理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...

  5. java算法 第七届 蓝桥杯B组(题+答案) 6.方格填数

    6.方格填数  (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...

  6. 由浅到深理解ROS(5)- launch启动文件的理解与编写

    ROS提供了一个同时启动节点管理器(master)和多个节点的途径,即使用启动文件(launch file).事实上,在ROS功能包中,启动文件的使用是非常普遍的.任何包含两个或两个以上节点的系统都可 ...

  7. git 常用commands(转)

    常用 Git 命令清单   作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60- ...

  8. vmware centos7 静态ip设置

    最近在学习linux环境部署~~~~ 首先,将网络适配设置成为桥接模式 查看本机IP地址,ipconfig,记住ipv4地址和默认网关地址,等会配置的时候要用 启动Centos,进入终端模式,设置IP ...

  9. 洛谷 P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…(树规)

    题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...

  10. [Fiddler]如何让Fiddler可以抓取https的请求

    Fiddler通过在本机开启了一个http的代理服务器来进行http请求和响应转发,默认情况下,并不能抓取https的请求.下面小编就来介绍下,如何用fiddler来抓取https的请求. 1.打开F ...