牛客OI测试赛2
题目链接: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的更多相关文章
- 关于斐波那契数列的一些恒等式 模板 牛客OI测试赛 A 斐波拉契
牛客A 斐波拉契 链接:https://www.nowcoder.com/acm/contest/181/A来源:牛客网 设f[i]表示斐波那契数论的第i项 f[1]=1,f[2] =1,f[i] = ...
- 牛客OI测试赛 C 序列 思维
链接:https://www.nowcoder.com/acm/contest/181/C来源:牛客网 题目描述 小a有n个数,他想把他们划分为连续的权值相等的k段,但他不知道这是否可行. 每个数都必 ...
- 牛客OI测试赛 F 子序列 组合数学 欧拉降幂公式模板
链接:https://www.nowcoder.com/acm/contest/181/F来源:牛客网 题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘 ...
- 牛客oi测试赛 二 B 路径数量
题目描述 给出一个 n * n 的邻接矩阵A. A是一个01矩阵 . A[i][j]=1表示i号点和j号点之间有长度为1的边直接相连. 求出从 1 号点 到 n 号点长度为k的路径的数目. 输入描述: ...
- [牛客OI测试赛2]F假的数学游戏(斯特灵公式)
题意 输入一个整数X,求一个整数N,使得N!恰好大于$X^X$. Sol 考试的时候只会$O(n)$求$N!$的前缀和啊. 不过最后的结论挺好玩的 $n! \approx \sqrt{2 \pi n} ...
- 牛客OI测试赛1
题目链接: https://www.nowcoder.com/acm/contest/181#question A.斐波拉契 求$f[n-1]*f[n+1]-f[n]^2$,$f[n]$为斐波拉契数列 ...
- 【牛客OI赛制测试赛3】 毒瘤xor
牛客OI赛制测试赛3 毒瘤xor 传送门 题面,水表者自重 Solution 前缀和简单题(挖坑待补) 代码实现 #include<stdio.h> #define int long lo ...
- 牛客OI赛制测试赛2(0906)
牛客OI赛制测试赛2(0906) A :无序组数 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序意思就是(a,b)和(b,a) 算一组. 输入描述: ...
- 牛客OI月赛12-提高组题解
牛客OI月赛12-提高组 当天晚上被\(loli\)要求去打了某高端oj部分原创的模拟赛,第二天看了牛客的题觉得非常清真,于是就去写了 不难发现现场写出\(260\text{pts}\)并不需要动脑子 ...
随机推荐
- PaddlePaddle推理部署
PaddlePaddle推理部署 飞桨推理产品简介 作为飞桨生态重要的一部分,飞桨提供了多个推理产品,完整承接深度学习模型应用的最后一公里. 整体上分,推理产品主要包括如下子产品 各产品在推理生态中的 ...
- 摄像头定位:ICCV2019论文解析
摄像头定位:ICCV2019论文解析 SANet: Scene Agnostic Network for Camera Localization 论文链接: http://openaccess.the ...
- AIFramework框架Jittor特性(下)
AIFramework框架Jittor特性(下)
- 【NX二次开发】Block UI对话框-代码生成部分
常规: 语言:生成的代码语言 生成附注:是否生成注释代码 生成特定与块的代码: 输入点: 回调:对话框通过回调函数调用,例如通过另一个对话框的按钮调用本对话框 菜单:对话框通过菜单调用 用户出口:对话 ...
- 文字识别OCR开源框架的对比--Tesseract vs EasyOCR
前言: OCR文字识别在目前有着比较好的应用,也出现了很多的文字识别软件,但软件是面向用户的.对于我们技术人员来说,有时难免需要在计算机视觉任务中加入文字识别,如车牌号识别,票据识别等,因此软件对 ...
- ES6、ES7的一些新特性
1.常见的就是let 和 const 命令 let 只在命令所在的代码块内有效 const声明一个只读的常量 2.变量的赋值 let [a, b, c] = [1, 2, 3]; 这样输出的话a=1, ...
- Golang超时机制--2秒内某个函数没被调用就认为超时
Golang超时机制--2秒内某个函数没被调用就认为超时 需求描述 当一整套流程需要其他程序来调用函数完成时通常需要一个超时机制,防止别人程序故障不调你函数导致你的程序流程卡死 实现demo pack ...
- Java并发之ReentrantLock源码解析(四)
Condition 在上一章中,我们大概了解了Condition的使用,下面我们来看看Condition再juc的实现.juc下Condition本质上是一个接口,它只定义了这个接口的使用方式,具体的 ...
- js笔记18
1.面向对象 (1)单例模式 (2)工厂模式 (3)构造函数 a.类 js天生自带的类 基类 object 子类 Function Array Number Math Boolean ...
- Windows10 上Docker 安装运行Consul
背景简介 Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面. 这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格. Consul需要数据平面并 ...