黑龙江职业学院校赛第二场(牛客网同步赛)

A 龙职院卷怪争霸

题目描述 人比人,气死人;但是气不死卷怪,卷怪是不可能落榜的。cr最近参加了专升本考试测验选拔,比的是每个人的高数成绩。参加考试的人被从左到右排成一排,头都朝向左边,然后每个人会得到一个整数数值,表示这个人的数学水平,很显然整数越大,表示这个人越能卷,而且任意两人卷的程度可能一样。由于所有的人头都朝向左边,所以每个人只能看见在它左边的人的数学水平,它们心里都在计算,在自己的眼力范围内有多少人不如自己能卷。请你帮这些人计算一下。

输入描述: 第一行输入一个整数 n,表示人的数量。 对于 100% 的数据,n ≤ 100。 第二行内输入 n 个整数a,用空格间隔,依次表示从左到右每个人的数学实力。 0<=a<=1e8

输出描述: 行内输出 n 个整数,用空格间隔,依次表示每个人眼中有多少人不如自己能卷。

示例1 输入 6 4 3 0 5 1 2

输出 0 0 0 3 1 2

简单暴力枚举即可,也可以用单调栈来做。

#include<bits/stdc++.h>

using namespace std;
int n;
int a[110];
int main()
{
    cin>>n;
    int cnt = 0;
    for(int i=1;i<=n;++i)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;++i)
    {
        int cnt=0;
        for(int j=0;j<i;++j)
        {
            if(a[j]<a[i])
            {
                cnt++;
            }
        }
        if(cnt==0) cout<<0<<' ';
        else cout<<cnt-1<<' ';
    }
    return 0;
}

B 最后一个签到 还是个字符串基础题

题目描述 给你n个字符串。字符串内有大小写字母和数字。 请你输出有多少个不同的字符串。

输入描述: 第一行一个整数n 1<=n<=10000 以下n行每行一个字符串S ≤S.length()≤1500

输出描述: 输出一个整数 不同的字符串的个数

示例1 输入 5 AC AC ACC ACCC ACCCC

输出 4 灵活运用map容器可以省很多事。

#include<bits/stdc++.h>

using namespace std;
const int N = 10010;
string s[N];

map<string,int> msi;
map<string,bool> msb;//给字符串计数时判个重
int n;

int main()
{
	cin>>n;
    for(int i=0;i<n;++i)
    {
        cin>>s[i];
        msi[s[i]]++;
    }
    int cnt=0;
    for(int i=0;i<n;++i)
    {
    	if(msi[s[i]]>=1&&msb[s[i]]==false) cnt++;
        msb[s[i]]=true;
	}
    cout<<cnt<<endl;
	return 0;
}

E 采购

题目描述 这一天蓝桥杯建个机房,以后国赛用,因为蓝桥杯很有钱。 给了无限预算。但是由于运力有限,所以买的电脑总体积要小于等于V。 因为合作的运输公司NB,所以只需要考虑体积而不用考虑形状。 市面上有n种电脑,每种电脑,一台的体积为t,价钱为w。 因为蓝桥杯又抠门题又坑,你决定算出最多能花掉多少钱,不买最好只买最贵。

输入描述: 第一行两个整数1<=n<=1000,1<=v<=1000 第二至n+2行有两个整数1<=t<=1000,1<=w<=1000

输出描述: 输出一个数字代表花掉的钱

示例1 输入 5 6
1 2 2 4 3 4 4 5 5 6

输出 12 这道题明显是个完全背包问题,注意最好用滚动数组优化,不然会很危险。

#include<bits/stdc++.h>
using namespace std;

const int N = 1010;
int v[N],w[N];
int n,m;
int dp[N];

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;++i)
    cin>>v[i]>>w[i];
    for(int i=1;i<=n;++i)
    {
        for(int j=v[i];j<=m;++j)
        {
            dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
        }
    }
    cout<<dp[m]<<endl;
    return 0;
}

F 字符串

题目描述 给你两个字符串 s1和s2 保证字符串只包含数字,字母。 请判断s1里面是否包含s2? 如果包含输出YES 否则输出NO

输入描述: 第一行一个字符串 s1 1≤len(s1)≤1000 第二行一个字符串 s2 1≤len(s2)≤1000

输出描述: 输出一行 如果s1里面包含s2输出YES 否则输出NO

示例1 输入 accccac ac

输出 YES

示例2 输入 ababababab ba

输出 YES

示例3 输入 aaaaaa c

输出 NO

简单find函数运用即可,应该也可以用暴力枚举匹配,不过那样太冗长了。

#include<bits/stdc++.h>

using namespace std;

string s1,s2;

int main()
{
    while(cin>>s1>>s2)
    {
    	if(s1.find(s2)!=-1) cout<<"YES"<<endl;
    	else cout<<"NO"<<endl;
	}
    
    return 0;
}

G 求素数

题目描述 t次查询 输出n到m之间的素数个数。

输入描述: 第一行一个整数t 1≤t≤1e5 以下t行每行两个整数 n m 1≤n≤m≤1e8

输出描述: t行 每行一个整数 n到m之间的素数个数

示例1 输入 5 1 100000000 114 514 123 456 13360 65617 10010 10086

输出 5761455 67 57 4969 6

这个题目数据范围很大的,达到了1e8,用朴素筛法肯定完蛋!考虑用线性筛法,时间复杂度是O(n)。

比赛的时候发生了大无语时间。。不知道是系统还是什么问题,同样的这份代码,本来是超时超到心态炸裂,后来破罐子破摔再交一次,居然过了,太玄学了 在这里插入图片描述 我觉得这当个线性筛法模板题不错,再加上前缀和的思想,基本上能胡搞过

#include<bits/stdc++.h>

using namespace std;
int t;
int n,m;
const int N = 1e8;
int primes[N];
int cnt;
bool st[N];
int Ha[N];

void init()
{
	for(int i=2;i<=N;++i)
	{
		if(!st[i])
		{
			primes[cnt++] = i;
			Ha[i] = cnt;
		}
		else Ha[i] = cnt;
		for(int j=0;primes[j]<=N/i;j++)
        {
            st[primes[j]*i]=true;
            if(i%primes[j]==0) break;
        }
	}
}


int main()
{
    cin.tie(0),ios::sync_with_stdio(false);
	init();
	Ha[0] = 0;
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		cout<<Ha[m]-Ha[n-1]<<endl;
	}
	
	return 0;
}

H 玩游戏

题目描述 现在我们来玩一个小游戏。 我们把一条路,分成了连续的n块,编号为1~n,1为起点,n为终点。 游戏规则是: 每次可以任意选择跳两格或者跳四格。 跳跃次数无限。 判断是否能够恰好到达终点。

输入描述: 一个正整数n 1≤n≤1e18

输出描述: 如果可以正好到达终点 输出n 否则 输出-1

示例1 输入 114514

输出 -1

示例2 输入 2233

输出 2233 规律题。

因为起点是从1开始的,并且每次只能跳偶数次,所以我们会发现只有当终点是奇数的时候我们才能恰好跳到,否则我们是不能跳到的

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
    ll n;
	cin>>n;
    if(n%2!=0) cout<<n<<endl;
    else cout<<-1<<endl;
}

全部评论

相关推荐

躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务