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. jquery排序与动态添加option以及属性

    function getOrgansid() { url="<%=basePath%>/rest/bsc/organ/selectOrganSidAllList"; $ ...

  2. tree的所有节点都勾选上或者取消勾选

    还有一个功能,就是让tree的所有节点都勾选上或者取消勾选,在api中找了一下有一个方法: check target 选中指定节点. 那我们只能是选中根节点后,实现全选. getRoot none 获 ...

  3. ios学习--详解IPhone动画效果类型及实现方法

    详解IPhone动画效果类型及实现方法是本文要介绍的内容,主要介绍了iphone中动画的实现方法,不多说,我们一起来看内容. 实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一 ...

  4. Python实现七牛云视频播放

    这篇文章是使用Python的Web框架Django Rest Framework来提供视频相关的api接口,主要功能包括视频上传.视频转码.视频访问授权.删除视频文件.视频截图功能. 七牛云上的基本概 ...

  5. WPF Shader 正片叠底

    新建文本文档拷贝以下代码 //正片叠底sampler2D implicitInput : register(s0);sampler2D oldInput : register(s1);float4 m ...

  6. Oracle和Mysql的区别 转载

    一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取.共享与锁定. mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他se ...

  7. ConcurrentHashMap的实现原理与使用

    一.适应ConcurrentHashMap的原因 HashMap存在线程不安全的问题,HashTable效率十分低下,因此,ConcurrentHashMap有了合适的登场机会. (1)HashTab ...

  8. tp5 select回显

    <select name="role_id" id="" class="form-control" required> {vol ...

  9. Greeplum 系列(三) 基本用法

    Greeplum 系列(三) 基本用法 <PostgreSQL 教程>:https://www.yiibai.com/postgresql 一.Greeplum 登陆与创建 1.1 登陆 ...

  10. Excel 常用快捷键

    Excel 常用快捷键 1. 移动整列 使用Shift快捷键可以快速移动整列:选中该列,当鼠标变成十字箭头时,按住Shift键,然后将该列移动到想要的位置. 2 绝对引用 使用F4快捷键可以快速设置绝 ...