题目链接:https://www.nowcoder.com/acm/contest/185#question

A.无序组数

暴力求出A和B的因子,注意二元组是无序的,因此还要考虑有些因子在A和B中都存在的情况

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=100006;
int a[maxn],ans[maxn];
int vis[maxn];
int main(){
int t;
scanf("%d",&t);
while(t--){
int m,n;
scanf("%d%d",&m,&n);
for(int i=1;i<=max(m,n);i++)
vis[i]=0;
int x=m,y=n,cnt=0,sum1=0,sum2=0;
for(int i=1;i<=m;i++){
if(m%i==0&&vis[i]==0){
sum1++;
vis[i]=1;
}
}
for(int i=1;i<=n;i++){
if(n%i==0){
sum2++;
if(vis[i]==1)
cnt++;
}
}
printf("%d\n",sum1*sum2-(cnt-1)*cnt/2);
}
}

B.路径数量

$dp[v][i]$表示从1号点到$v$号点长度为i的路径数目,则$dp[v][i]=dp[v][i]+dp[j][i-1]$,其中$i$与$j$间有边直接相连

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<stack>
#include<vector>
using namespace std;
typedef long long ll;
const int maxn=36;
vector<int> g[maxn];
ll dp[maxn][maxn];
int main(){
int n,k;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
int z;
scanf("%d",&z);
if(z==1){
g[i].push_back(j);
if(i==1)
dp[j][1]=1;
}
}
for(int i=1;i<=k;i++)
for(int j=1;j<=n;j++)
for(int z=0;z<g[j].size();z++)
{
int v=g[j][z];
dp[v][i]=dp[v][i]+dp[j][i-1]; }
cout<<dp[n][k]<<endl;
}

C.数列下标

暴力。。。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=100006;
int a[maxn],ans[maxn];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(a[j]>a[i]){
ans[i]=j;
break;
}
}
}
for(int i=1;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);
}

D.星光晚餐

前$n$个数当中,只有因子数为奇数个的星星最后会亮,若$i$为$n$的因子,则$n/i$也是$n$的因子,当$i\ne n/i$时,因子数总是成对出现,因此最后亮的星星都是完全平方数

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=100006;
int a[maxn],ans[maxn];
int vis[maxn];
int main(){
long long n;
cin>>n;
cout<<(long long )sqrt(n)<<endl;
}

E.括号序列

和括号匹配想法一样,每次遇到左括号sum++,遇到右括号如果sum为零,说明需要交换,使sum++,ans++,如果sum为正,则sum--

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<stack>
using namespace std;
const int maxn=10000006;
int a[maxn],ans[maxn];
int vis[maxn];
char s[maxn];
int main(){
int n;
int sum=0;
int ans=0;
scanf("%d",&n);
scanf("%s",s+1);
//cout<<s+1<<endl;
for(int i=1;i<=n;i++)
if(s[i]=='(')
sum++;
else if(s[i]==')'){
if(sum>0)
sum--;
else if(sum<=0){
sum++;
ans++;
}
}
cout<<ans<<endl;
}

F.假的数学游戏

根据斯特林公式:$n!\approx\sqrt{2\pi n}{(\frac{n}{e})}^n$,两边同时取对数,再对$n$进行二分即可

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<stack>
#include<vector>
using namespace std;
typedef long long ll;
const int maxn=36;
vector<int> g[maxn];
ll dp[maxn][maxn];
int main(){
ll l=0,r=1e12,mid;
ll x;
scanf("%lld",&x);
for(int i=1;i<1000;i++){
mid=(l+r)/2.0;
if(log(sqrt(2*acos(-1)*mid))+mid*log(mid/exp(1.0))<x*log(x))
l=mid;
else r=mid; }
cout<<r<<endl;
}

  

 

牛客OI测试赛2的更多相关文章

  1. 关于斐波那契数列的一些恒等式 模板 牛客OI测试赛 A 斐波拉契

    牛客A 斐波拉契 链接:https://www.nowcoder.com/acm/contest/181/A来源:牛客网 设f[i]表示斐波那契数论的第i项 f[1]=1,f[2] =1,f[i] = ...

  2. 牛客OI测试赛 C 序列 思维

    链接:https://www.nowcoder.com/acm/contest/181/C来源:牛客网 题目描述 小a有n个数,他想把他们划分为连续的权值相等的k段,但他不知道这是否可行. 每个数都必 ...

  3. 牛客OI测试赛 F 子序列 组合数学 欧拉降幂公式模板

    链接:https://www.nowcoder.com/acm/contest/181/F来源:牛客网 题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘 ...

  4. 牛客oi测试赛 二 B 路径数量

    题目描述 给出一个 n * n 的邻接矩阵A. A是一个01矩阵 . A[i][j]=1表示i号点和j号点之间有长度为1的边直接相连. 求出从 1 号点 到 n 号点长度为k的路径的数目. 输入描述: ...

  5. [牛客OI测试赛2]F假的数学游戏(斯特灵公式)

    题意 输入一个整数X,求一个整数N,使得N!恰好大于$X^X$. Sol 考试的时候只会$O(n)$求$N!$的前缀和啊. 不过最后的结论挺好玩的 $n! \approx \sqrt{2 \pi n} ...

  6. 牛客OI测试赛1

    题目链接: https://www.nowcoder.com/acm/contest/181#question A.斐波拉契 求$f[n-1]*f[n+1]-f[n]^2$,$f[n]$为斐波拉契数列 ...

  7. 【牛客OI赛制测试赛3】 毒瘤xor

    牛客OI赛制测试赛3 毒瘤xor 传送门 题面,水表者自重 Solution 前缀和简单题(挖坑待补) 代码实现 #include<stdio.h> #define int long lo ...

  8. 牛客OI赛制测试赛2(0906)

    牛客OI赛制测试赛2(0906) A :无序组数 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序意思就是(a,b)和(b,a) 算一组. 输入描述: ...

  9. 牛客OI月赛12-提高组题解

    牛客OI月赛12-提高组 当天晚上被\(loli\)要求去打了某高端oj部分原创的模拟赛,第二天看了牛客的题觉得非常清真,于是就去写了 不难发现现场写出\(260\text{pts}\)并不需要动脑子 ...

随机推荐

  1. NVIDIA 认证系统

    NVIDIA 认证系统 AI 是这个时代最强大的技术,需要新一代经过调整和测试的计算机来推动其发展. 自 1 月 27 日开始,可从 NVIDIA 合作伙伴处获取用于数据中心的新型加速服务器,推动 A ...

  2. httprunner_安装及利用脚手架工具快速创建项目

    一.安装httprunner 笔者自己安装的版本为2.5.7 安装命令: pip  install httprunner==2.5.7 二.快速创建目录 hrun --startproject dem ...

  3. UiPath中恢复依赖项失败的解决方法

    目录 序言 正文 什么是依赖包? 如何查看项目使用了哪些版本的依赖包? 一.项目内查看 二.查看项目的 JSON 文件 问题根源 解决方法 一.「等」字诀 二.切换网络环境(根治) 三.手动复制依赖包 ...

  4. NX二次开发】Block UI 体收集器

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  5. 02:database 配置(可能出现严格模式配置问题)

    DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'day42', 'USER': 'root', 'P ...

  6. 在VScode 中使用RT-Thread Studio初体验

    前言 工欲善其事,必先利其器,VScode是什么东东,想必大家都非常熟悉了,丰富的插件,有好的开发界面,是很多程序开发者的不二之选,RT-Thread竟然也开发了Vscode插件,真的是非常的nice ...

  7. Centos8.3、docker部署springboot项目实战记录

    引言    目前k8s很是火热,我也特意买了本书去学习了一下,但是k8s动辄都是成百上千的服务器运维,对只有几台服务器的应用来说使用k8s就有点像大炮打蚊子.只有几台服务器的应用运维使用传统的tomc ...

  8. 手写Spring,定义标记类型Aware接口,实现感知容器对象

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 同事写的代码,我竟丝毫看不懂! 大佬的代码,就像 "赖蛤蟆泡青蛙,张的丑玩 ...

  9. (Element UI 组件 Table)去除单元格底部的横线

    Element UI 组件 Table 有一个属性 border,添加它可以增加纵向边框,但是无法控制横线边框,因此即使是最简单的 el-table,也会包含一个底部横线. 这个底部横线其实是一个 b ...

  10. ORA-12560: 解决TNS:协议适配器错误

    1)安装成功,但无法连接数据库 2)网上查找原因:32位的不能运行64位的oracle,而且不会有64位的版本 3)解决办法:大致是修改客户端数据库为32位的(此方法OK) (1)解压instantc ...