牛客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}\)并不需要动脑子 ...
随机推荐
- PVD与CVD性能比较
PVD与CVD性能比较 CVD定义: 通过气态物质的化学反应在衬底上淀积一层薄膜材料的过程. CVD技术特点: 具有淀积温度低.薄膜成分和厚度易于控制.均匀性和重复性好.台阶覆盖优良.适用范围广.设备 ...
- H.264 Video Codec速度和质量
H.264 Video Codec速度和质量 从Kepler开始的所有 NVIDIA GPUs 都支持完全加速的硬件视频编码: GPUs 从费米开始支持完全加速的硬件视频解码.最近发布的图灵硬件提供了 ...
- TensorRT Analysis Report分析报告
TensorRT Analysis Report 一.介绍 TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟.高吞吐率的部署推理.TensorRT可 ...
- 视频处理器为电池供电的设计提供4K视频编码
视频处理器为电池供电的设计提供4K视频编码 Video processor enables 4K video coding for battery-powered designs OmniVision ...
- adb基础命令
adb运行原理: 启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程.如果没有,它将启动服务器进程.当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb ...
- Java IO学习笔记一:为什么带Buffer的比不带Buffer的快
作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...
- 一张图理清计算机常见编码的关系。ASCII、Unicode都不是事儿
编码按适用范围可以简单分为:(本人自定义) 美国编码(ASCII)ASCII为基础编码,来源于美国:其它编码都兼容ASCII编码: 欧盟编码(ISO8859-1.WINDOWS-1252)先是ISO- ...
- (Vue中)cehart在同一个dom上画图图切换时饼图有折线图的坐标系
网上都是别人转载的,下面是转载的代码,在Vue中根本不适用 var echartrunningstate = null; if (echartrunningstate && echar ...
- docker4-docker网络,容器编排,集群部署
1,docker网络 1.1,docker0 有三个网络环境,那么docker是如何处理容器网络访问的? 1.2,测试 docker run -d -p 80:8080 --name tomcat01 ...
- 【LeetCode每日一题 Day 1】1. 两数之和
大家好,我是编程熊,今天是LeetCode每日一题的第一天,今天的你比昨天更加优秀啦! 题意 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target ...