2019年第十届蓝桥杯C/C++A组省赛 题面&部分题解

2019年第十届蓝桥杯C/C++ B组省赛题解 试题A——组队 话说这道题目别看简单,其实还真有点坑点,不细心一点,必然会WA,我比赛的时候,可能脑子抽了算的一行的最大值,其实这一道题目是要你选出1 - 20个编号的球员中选出五个位置的人,使得1号位到5号位的最大值尽可能大。就相当于求1号位到5号位每一列都最大的值。 492填上?那就WA了 可以看到我们圈出的每一个位置的最大值1号位和3号位还有4号位都是同一个人,这显然是错的。 所以有一... 阅读详情

前言

题目&做法

第一题 平方和

第二题 数列求值

第三题 最大降雨量

第四题 迷宫

第五题 RSA 解密

第六题 完全二叉树的权值

第七题 外卖店优先级

第八题 修改数组

第九题 糖果

第十题 组合数问题

比赛总结


前言

        原题链接:2019年蓝桥杯第十届软件类C/C++A组省赛

        首先声明,本篇博客为根据对赛时的回忆所写,相对于“题解”,其实更偏向于“总结”,总结赛时的机智和失误。本博客提到的做法均不一定正确,请带着批判的眼光来读,发现问题欢迎评论与我讨论。

题目&做法

第一题 平方和

题意:

        貌似是求1~2019的数里含有'2','0','1','9'的数的平方和?

做法:

        C++11有to_string,把每个数转成字符串之后判断每一位是否为那些数,如果是,加到平方和。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 2019;
static const int INF = 0x3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("test.txt","r",stdin);
    #endif
}
const char tmp[] = {'2','0','1','9'};
int main(){
    redirect();
    ll sum = 0;
    for(int i = 1;i <= maxn;i++){
        string str = to_string(i);
        for(int j = 0;str[j];j++)
        for(int k = 0;k < 4;k++)
        if(str[j] == tmp[k]){
            sum += i*i;
            goto label;
        }
        label:
            continue;
    }
    printf("%lld\n",sum);
    return 0;
}

总结:

        赛后写的代码,跟赛时写得不太一样。。我记得我没有写label。。那么我赛时可能5分送分题写挂了?可我记得样例过了啊。。不太清楚,可能是记错题了。

第二题 数列求值

题意:

        貌似是类斐波那契数列?只不过递推式改为了f[i] = f[i-1] + f[i-2] + f[i-3]。只问f[20190324]最后四位。

思路:

        直接递推就可以,数又不大。每次求完对10000取模即可,n再大考虑矩阵快速幂?

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const int INF = 0x3f3f3f3f;
static const int mod = 10000;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("test.txt","r",stdin);
    #endif
}
int f[20190325];
int main(){
    redirect();
    f[1] = f[2] = f[3] = 1;
    for(int i = 4;i <= 20190324;i++)f[i] = (f[i-1] + f[i-2] + f[i-3])%mod;
    printf("%d\n",f[20190324]);
    return 0;
}

总结:

        答案4659,忘记我答案多少了。。希望我没有从f[0]开始而多跑一位。。。

第三题 最大降雨量

题意:

        把1~49分成7组,求每一组中位数,7个中位数再求一个中位数,问最终结果最大多少。

思路:

        贪心,一定比这个中位数大的就让比它大,剩下的都比它小就好。这个答案应该在分组的第四组,一定比它大的包括第五、六、七组中位数以及大于这些中位数的数:

(1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7)
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7)
(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7)
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7)
(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7)
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7)
(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7)

        我们要让(4,4)最大,比它大的有(4,5)~(4,7) (5,4)~(5,7) (6,4)~(6,7) (7,4)~(7,7)共有3*4+3个数,49-(3*4+3)=34

总结:

        赛场上智障了,莫名其妙以为(5,4)是要求的答案,求出来个结果38。凉了。

第四题 迷宫

题意:

        给一个迷宫,求在步数最小的情况下,取行动方案连成的字典序最小的字符串。

思路:

        按字典序排每一次试探的行动顺序,然后就是bfs走迷宫模板题,将步数变成字符串就行。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const int INF = 0x3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);
static const char ch[] = {'D','L','R','U'};
static const int dx[] = {1,0,0,-1};
static const int dy[] = {0,-1,1,0};

void redirect(){
    #ifdef LOCAL
        freopen("test.txt","r",stdin);
    #endif
}

struct node{
    int x,y;
    string z;
    node(int a,int b,string c){
        x = a,y = b,z = c;
    }
    node(){}
};

int maze[100][100];
bool vis[100][100];
int n = 30,m = 50;
int sx,sy,gx,gy;

int main(){
    redirect();
    for(int i = 0;i < n;i++)
    for(int j = 0;j < m;j++)
    scanf("%1d",&maze[i][j]);
    gx = n-1,gy = m-1;
    queue<node>q;
    q.push(node(0,0,""));
    while(!q.empty()){
        node p = q.front();
        q.pop();
        vis[p.x][p.y] = true;
        if(p.x == gx && p.y == gy){
            cout << p.z << endl;
            return 0;
        }
        for(int i = 0;i < 4;i++){
            int mx = p.x+dx[i],my = p.y+dy[i];
            if(mx >= 0 && mx < n && my >= 0 && my < m && !vis[mx][my] && !maze[mx][my])
            q.push(node(mx,my,p.z+ch[i]));
        }
    }
    return 0;
}

总结:

        怎么现在回忆pdf上给的字典序排序是D<U<L<R?这不对呀。。(突然背后一丝凉意。。。)

第五题 RSA 解密

题意:

        RSA加密,给定p,q两个质数,n=p*q,再给一个与(p-1)*(q-1)互质的d,就能找到一个e使得d*e%(p-1)(q-1) = 1

        给定密文C,可根据C^e%n得出原文D

思路:

        暴力i从2到sqrt(n),如果n%i==0,输出i,n/i 很快就跑出来了p和q,验算一下(p-1)(q-1)与d确实是互质的。设a = (p-1)(q-1)

则存在i∈[0,d),使(i*a+1)%d == 0,此时(i*a+1)/d即为e,然后快速幂取模,pow(C,e,n)即可得出答案。

代码:

求p,q,a部分:

bool isPrime(ll n){
    ll x = sqrt(n);
    for(ll i = 2;i <= x;i++)
    if(n%i == 0)return false;
    return true;
}
int main(){
    ll n = xxx,d = yyy;
    ll maxn = sqrt(n);
    for(ll i = 2;i <= maxn;i++)
    if(n % i == 0){
        ll p = i,q = n/i,a = (p-1)*(q-1);
        if(isPrime(p) && isPrime(q) && __gcd(a,d)==1)printf("%lld %lld %lld\n",p,q,a);
    }
    return 0;
}

求答案部分:

a = int(xxx)
n = int(yyy)
d = int(zzz)
C = int(???)
e = 0
for i in range(0,d):
    if (i*a+1)%d == 0:
	    e = (i*a+1)/d
print(pow(C,int(e),n))

总结:

        数论不好,如果没有python恐怕要用__int128来做后半部分了。。还好这次给了python。。求出来的答案记得是18B,开头字母为8,正不正确还不知道。。。

第六题 完全二叉树的权值

题意:

        给一个完全二叉树,和每个点的值,问第几层值之和最大。

思路:

        完全二叉树≠满二叉树。求一个完全二叉树有几层要看给的n(节点个数)的二进制最高位是第几位。比如1的最高位为第一位,只有一层;7(111)的最高位为第三位,有三层,8(1000)的最高位为第四位,有四层……对每一层求个和,和先前记录的最大值比较一下,大了更新即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const ll INF = 0x3f3f3f3f3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("test.txt","r",stdin);
    #endif
}

int main(){
    redirect();
    int n,x,depth = 0;
    scanf("%d",&n);
    x = n;
    while(x)x>>=1,depth++;
    ll maxval = -INF,ans;
    for(int i = 1;i <= depth;i++){
        ll sum = 0;
        int cnt = 1<<(i-1);
        while(cnt-- && ~scanf("%d",&x))sum += x;
        if(sum > maxval)maxval = sum,ans = i;
    }
    printf("%I64d\n",ans);
    return 0;
}

总结:

        这题其实是有坑点的,首先不是满二叉树。。最后一层不一定是满的。其次结点值可能是负的,那些取maxval = 0的凉了。还有这题好像爆int,要开long long。

第七题 外卖店优先级

题意:

        有n个商家,初始热度均为0,他们在时间T分钟内总共产生m个订单。对一个商家,如果某分钟没接到订单,热度将-1(掉到0为止不会再掉),每接到一个订单,热度+2,且这一分钟热度不会-1。对平台来说,某个商家热度到达6,将加入到一个名单上,当某商家热度掉到3,将从名单上划掉,问在时间T,处理完m个订单之后,在名单上的商家个数。

思路:

        对订单集合按时间sort一下,每分钟将每个商家热度-1是不现实的,否则将会是O(n*T)复杂度,也就拿个暴力分了。

        一个很自然的想法是,对于每个商家,开个last数组记录上一次接到订单是什么时候,以便在下一次接单的时候能够方便地计算出两次接单的时间差,在此期间掉的热度就知道了。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const int INF = 0x3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("test.txt","r",stdin);
    #endif
}

struct node{
    int t,x;    
}p[maxn];

bool operator <(const node& a,const node& b){
    return a.t < b.t;
}

int last[maxn];
int val[maxn];
bool live[maxn];

int main(){
    redirect();
    int n,m,T,cnt = 0;
    scanf("%d %d %d",&n,&m,&T);
    for(int i = 1;i <= m;i++)scanf("%d %d",&p[i].t,&p[i].x);
    sort(p+1,p+1+m);
    for(int i = 1;i <= m;i++){
        int &t = p[i].t,&x = p[i].x;
        val[x] = max(0,val[x]-max(0,t-last[x]-1)) + 2;
        last[x] = t;
        if(val[x] > 5)live[x] = true;
        else if(val[x] <= 3)live[x] = false;
    }
    for(int i = 1;i <= n;i++){
        val[i] -= T-last[i];
        if(val[i] <= 3)live[i] = false;
        if(live[i])cnt++;
    }
    printf("%d\n",cnt);
    return 0;
}

总结:

        同样卡了很久。。而且不知道正确性。。。而且。。最关键的是。。这题叫“饱了么”。。。都给没吃早餐的我给看饿了。

第八题 修改数组

题意:

        给定一个数组a[],从头到尾,对于每个数a[i],如果在i位置之前出现过,就一直+1,直到没有在先前的数组里出现过,这成为新的a[i]

思路:

        直接暴力O(n^2)显然只能拿部分分。考虑到a[i]大小最大只有1e6,可以开一个set,存入1~1e6(如果每个数都是1e6,而有1e5个,最大的数可到1.1e6-1),每次给一个数x,查询set.lower_bound(x)代表的数,给这个位置就行了,然后再set里把这个数删掉。复杂度O(n*logm)(m为集合里数的数量)

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const int INF = 0x3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("out.txt","r",stdin);
    #endif
}

set<int>s;
inline int read(){
    int num = 0,w = 0;
    char ch = 0;
    while(!isdigit(ch)){
        w |= ch == '-';
        ch = getchar();
    }
    while (isdigit(ch)){
        num = (num<<3) + (num<<1) + (ch^48);
        ch = getchar();
    }
    return w? -num: num;
}

int main(){
    redirect();
    for(int i = 1;i < 1100000;i++)s.insert(i);
    int n,x;
    scanf("%d",&n);
    for(int i = 1;i <= n;i++){
        x = read();
        set<int>::iterator it = s.lower_bound(x);
        printf("%d%c",*it,i==n?'\n':' ');
        s.erase(it);
    }
    return 0;
}

总结:

        Process exited after 1.019 seconds with return value 0

        这是上述代码运行极端数据(1e5个1e6)的结果。时间1s有点儿紧。。能不能过还要看运气。不过我这道题是过不了了。。想复杂脑抽写了并查集,记录一段连续区间的区间首,在区间首记录区间长度……这思路根本就不对- -算法是fake的,都怪当时太紧张,测了下样例过了,自己出了个n=10的随机数据过了就给交了。。

        另外有思路采用树状数组+二分,跟set在时间上应该差不了多少。

第八题更新题解:

        并查集思路是对的,只不过我在比赛的时候也写挂了。。combine的时候要根据大小判断一下才可以。不多说,直接上代码写思路:

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const int INF = 0x3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("out.txt","r",stdin);
        freopen("ans.txt","a+",stdout);
    #endif
}
int fa[11*maxn],len[11*maxn];
bool vis[11*maxn];

int find(int x){
    int tmp = x;
    while(tmp != fa[tmp])tmp = fa[tmp];
    while(x != fa[x]){
        int c = fa[x];
        fa[x] = tmp;
        x = c;
    }
    return tmp;
}

void combine(int x,int y){
    int fx = find(x),fy = find(y);
    if(fx < fy)len[fx] += len[fy],fa[fy] = fx;
    else if(fx > fy)len[fy] += len[fx],fa[fx] = fy;
}

int main(){
    redirect();
    int n,x;
    scanf("%d",&n);
    for(int i = 1;i < 11*maxn;i++)fa[i] = i;
    for(int i = 1;i <= n;i++){
        scanf("%d",&x);
        if(vis[x]){
            int head = find(x);
            int ans = head + len[head];
            assert(!vis[ans]);
            vis[ans] = true;
            fa[ans] = head;
            len[head]++;
            if(vis[ans+1])combine(head,ans+1);
            printf("%d%c",ans,i==n?'\n':' ');
        }
        else{
            vis[x] = true;
            len[x] = 1;
            if(vis[x-1])combine(x-1,x);
            if(vis[x+1])combine(x,x+1);
            printf("%d%c",x,i==n?'\n':' ');
        }
    }
    return 0;
}

思路:

        朴素的常规思路O(n^2),在判断一个数已经用过(可以用vis数组)之后,找到下一个可用的数需要用O(n)时间。

        优化思路是在找下一个可用数的时候,二分查找,整体复杂度降为O(n*logn)

        采用并查集,记录一段连续的数的开头的数,和这段数的长度,可以在O(1)时间内找到下一个可用的数。具体做法看代码。

        采用了并查集之后的代码,跑1e5个1e6的极端数据,用时0.3s:Process exited after 0.3053 seconds with return value 0

第九题 糖果

题意:

        有n袋糖,里面有m种糖,每袋糖有k个,问至少取几包才能攒够所有种类的糖。

        n <= 100;m,k <= 20

思路:

        莫名感觉很像区间覆盖问题,假如一袋糖覆盖一个区间的话。。。后来马上否认了,一袋糖里装的糖的种类是隔开而不连续的。。

        没有太好的办法,看到数据量决定还是dfs铤而走险。记录每袋糖拥有的糖果种类,同时记录哪些袋种有某种糖果种类(相互映射关系),对糖果种类dfs暴搜+剪枝。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
static const int maxn = 100010;
static const int INF = 0x3f3f3f3f;
static const int mod = (int)1e9 + 7;
static const double eps = 1e-6;
static const double pi = acos(-1);

void redirect(){
    #ifdef LOCAL
        freopen("test.txt","r",stdin);
    #endif
}
//s1为某袋糖果里有的糖果种类,s2为某种类哪些袋子里有
set<int>s1[110],s2[25];
int n,m,k,x;
bool a[110];//选哪些袋
int ans = INF;
void dfs(int x){
    if(x > m){
        int cnt = 0;
        for(int i = 1;i <= n;i++)
        if(a[i])cnt++;
        ans = min(ans,cnt);
        return;
    }
    for(int i = 1;i <= n;i++)
    if(a[i] && s1[i].count(x))dfs(x+1);
    for(set<int>::iterator it = s2[x].begin();it != s2[x].end();it++){
        a[*it] = true;
        dfs(x+1);
        a[*it] = false;
    }
}
int main(){
    redirect();
    scanf("%d %d %d",&n,&m,&k);
    for(int i = 1;i <= n;i++)
    for(int j = 1;j <= k;j++){
        scanf("%d",&x);
        s1[i].insert(x);
        s2[x].insert(i);
    }
    dfs(1);
    printf("%d\n",ans==INF?-1:ans);
    return 0;
}

总结:

        太brute force了。。不一定能AC

第十题 组合数问题

题意:

        给定T,k,其中T为样例数,k为质数,对于每组样例,给出n,m,求

        \small \sum_{i=1}^{n}\sum_{j=0}^{min(i,m)}(C(i,j)|k)

思路:

        只会根据C(i,j)=C(i-1,j) + C(i-1,j-1)递推求n<=2000时的少组样例,甚至连莫队算法都没法用。

代码:

        太brute force了,略了。

总结:

        thu2016集训原题,看来出题人要么是thu老师,要么是thu巨巨,要么是有渊源的狼灭吧。

比赛总结

        如果说去年不能进省一是有可能,而因为运气好进了,今年恐怕真就悬了,悬的是做题时状态的飘忽不定,悬的是不认真读题,各种脑抽,悬的是太过重视而压力太大。实际上,去年赛前压根没想过会拿省一,就放下包袱轻装上阵,结局正出人意料。

        赛已完,只能够祈福主办方能给我一次北京的机会了。

                                                                                                                                                            2019-3-24 21:52于hhu

2019-3-28更新:

        看来比完立个不能进国赛的flag总是有用的hhh,劝大家比完都立个能拿省一就女装的flag,这样就能全员省一了hhh。不过好险,这回差点儿就翻车了,差十几名就掉出省一了。五月北京见!

2019第十届蓝桥杯c++A组省赛试题及个人解法 第十届蓝桥杯2019年C/C++ 大学A组省赛试题 2019年蓝桥杯第十届软件类省赛# C/C++ 大 学 A 组# 试题 A: 平方和#(暴力) 本题总分:5 分 【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分... 阅读详情

相关推荐

2017第八届蓝桥杯C/C++ B组省赛题解

2017年第八届蓝桥杯C/C++ B组省赛题解

YzlCoder的记事本 11万+

2019 第十届蓝桥杯大赛软件类省赛 C/C++ 大学 A 组 【部分题解】

声明: 这些的答案不是官方答案,都是我自己做的,仅供参考。一起加油 试题 A: 平方和 本题总分:5′5 &amp;#x27;5′ 【问题描述】 小明对数位中含有 2、0、1、92、 0、 1、 92、0、1、9 的数字很感兴趣,在111 到 404040 中这样的数包括 1、2、9、101、 2、 9、 101、2、9、10 至 32、3932、 3932、39 和404040,共 282828...

nobleman 7481

蓝桥杯省赛 C/C++ ABC组题解(第四届 ~ 第十二届)

第十届蓝桥杯 题号 C++ A组 C++ B组 C++ C组 试题A 平方和 组队 求和 试题B 数列求值 年号字串 矩形切割 试题C 最大降雨量 数列求值 年号字串 试题D 迷宫 数的分解 质数 试题E RSA解密 迷宫 最大降雨量 试题F 完全二叉树的权值 特别数的和 旋转 试题G 外卖店优先级 完全二叉树的权值 外卖店优先级 试题H ...

六级不考550+不改名 1万+

2019蓝桥杯C++A组——组合数问题

目录问题描述题目解析C++代码 问题描述 给n,m,kn,m,kn,m,k,求有多少对(i,j)(i,j)(i,j)满足1≤i≤n1≤i≤n1≤i≤n,0≤j≤min(i,m)0≤j≤min(i,m)0≤j≤min(i,m)且Cij=0(modC_i^j=0(modCij​=0(mod k)k)k),kkk是质数。其中CijC_i^jCij​是组合数,表示从iii个不同的数中选出jjj个组成一个集合的方案数。 【样例输入】 1 2 3 3 【样例输出】 1 【样例说明】 在所有可能的情况中,只有C21=

SAMSARA的博客 953

蓝桥杯B组省赛历届真题及解析C/C++

蓝桥杯B组省赛历届真题及解析C/C++ 目录蓝桥杯B组省赛历届真题及解析C/C++前言跳转目录ps 前言 网上这部分内容好像比较欠缺,此系列文章最主要用于分享题目(找个真题真不容易),其次用于记录学习以及分析学习心得。 跳转目录 2012年第三届C/C++ B组蓝桥杯省赛真题 2013年第四届C/C++ B组蓝桥杯省赛真题 2014年第五届C/C++ B组蓝桥杯省赛真题 2015年第六届C/C++ B组蓝桥杯省赛真题 2016年第七届C/C++ B组蓝桥杯省赛真题 2017年第八届C/C++ B组蓝

qq_52134928的博客 1万+

2019 第十届蓝桥杯C/C++ 省赛B组题解

文章目录前言试题 A: 组队试题 B: 年号字串试题 C: 数列求值试题 D: 数的分解试题 E: 迷宫试题 F: 特别数的和试题 G: 完全二叉树的权值试题 H: 等差数列试题 I: 后缀表达式试题 J: 灵能传输 前言 又是一年一度的蓝桥杯,这次也应该是我大学最后一次学科竞赛了,今年的省赛题型和往届有些不同,代码填空没有了,只有结果填空和编程大题,不过坑还是一样的多,稍不注意就出错了。这里记录...

指点 2万+

2023年第十四届蓝桥杯省赛JavaB组个人题解(AK)

之前在dotcpp上发了几个单独题解,现在补一篇完整的吧 P.S. 当天比完,一回去被室友感染甲流发烧躺了一周,。。(喜 今年相较去年,中规中矩吧.本题总分:5分【问题描述】令 S=1!+2!+3!+...+202320232023!S = 1! + 2! + 3! + ... + 202320232023!S=1!+2!+3!+...+202320232023!,求 SSS 的末尾 9 位数字。 提示:答案首位不为 0。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,

m0_62573287的博客 3万+

2020年第十一届C/C++ B组第二场蓝桥杯省赛真题

2020年第十一届C/C++ B组第二场蓝桥杯省赛真题真题第一题:门牌制作第二题:既约分数第三题:蛇形填数第四题:跑步锻炼第五题:七段码第六题:成绩统计第七题:回文日期第八题:子串分值和第九题:平面切分第十题:字串排序题解第一题:门牌制作第二题:既约分数第三题:蛇形填数第四题:跑步锻炼第五题:七段码第六题:成绩统计第七题:回文日期第八题:子串分值和第九题:平面切分第十题:字串排序 真题 第一题:门牌制作 题目描述 第二题:既约分数 题目描述 第三题:蛇形填数 题目描述 第四题:跑步锻炼 题目描述 第五题:七

qq_52134928的博客 8327

2019年第十届蓝桥杯省赛C++A组【第十题:组合数问题】

第十题 试题 J: 组合数问题 时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分 问题描述 输入格式 第一行两个数 t, k,其中 t 代表该测试点包含 t 组询问,k 的意思与上文中相同。 接下来 t 行每行两个整数 n, m,表示一组询问。 输出格式 输出 t 行,每行一个整数表示对应的答案。由于答案可能很大,请输出答案除以 109 + 7 的余数。 样例输入 1 2 3 3 样例输出 1 样例说明 样例输入 2 5 4 5 6 7 样例输出 0 7 样例输入 3 23

jianjianjianjian01的博客 1341

第九届蓝桥杯真题C/C++(C组)

这是2018年省赛第九届蓝桥杯真题C/C++(C组),新鲜出炉。。

2019蓝桥杯C_C++省赛 真题

2019蓝桥杯C_C++省赛 真题2019蓝桥杯C_C++省赛B组

2019年第十届蓝桥杯省赛试题及详解(Java本科A组)

结果填空 (满分5分) 结果填空 (满分5分) 结果填空 (满分10分) 结果填空 (满分10分) 结果填空 (满分15分) 程序设计(满分15分) 程序设计(满分20分) 程序设计(满分20分) 程序设计(满分25分) 程序设计(满分25分) 第一题:平方和 【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。 注意,平方和是指将每个数分

future277809183的专栏 9680

2019第十届蓝桥杯B组题目

2019年第十届蓝桥杯省赛B组题目、第十届蓝桥杯省赛本科B组赛题!

【备战蓝桥杯】第十四届蓝桥杯省赛C/C++ B组真题及题解

参加了两届蓝桥杯以及做过了往年的真题我的直观感受是蓝桥杯不再那么“暴力”了,而是逐渐趋向DP和搜素图论方面了。下面是第十四届蓝桥杯省赛C/C++ B组真题及题解,希望对阅读的你有所帮助。

Stephen_Curry___的博客 2万+

第十届蓝桥杯题目

第十届蓝桥杯原题目压缩包,里面有10道题的题目的图片形式和PDF形式

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6318

2019第十届蓝桥杯国赛c++B组真题及题解

2019第十届蓝桥杯国赛c++B组真题及题解 目前并未找到标准答案,个人解法可能并不完全正确或最优,不对的还请指正! A-题目描述: 请找到两个正整数X和Y满足下列条件: 1、2019&lt;X&lt;Y 2、20192、X2、Y2构成等差数列 满足条件的X和Y可能有多种情况,请给出X+Y的值,并且令X+Y尽可能的小。

Nothing_but_Fight的博客 1万+

多模态模型评测神器 | OpenCompass MMBench 了解一下!

MMBench 是 OpenCompass 研究团队自建的视觉语言模型评测数据集,可实现从感知到认知能力逐级细分评估。研究团队从互联网公开信息与权威基准数据集采集约 3000 道单项选择题 ,覆盖目标检测、文字识别、动作识别、图像理解、关系推理等 20 个细粒度评估维度。

OpenCompass的博客 7826

【第15届蓝桥杯C/C++B组省赛】试题&参赛经历&经验&个人题解

​ 蓝桥杯结束了,学了这么久的算法,虽然写的不是特别好,大多都是直接暴力,但是希望能进国赛吧。现在是2024年9月22日20:43:28,距离4月份参加完省赛已经过了5个月,当时参加省赛的代码我在官网上模拟自测了一下,得分为70(满分150),这些代码虽然写的一坨,但是在四川省b组也能拿省一等奖进国赛,甚至当时的排名还比较靠前,希望对后续参加蓝桥杯的同学有所帮助。​ 本来想用哈希表来剪枝,不知道为什么当时没写出来,一直报错,devc++我又不知道哪里错了,没办法 反正也是骗分,直接暴力了。

ylxc_tu的博客 1万+

uniapp 实现RFID识别的实战指南

本文提供了在uniapp中实现RFID识别的完整实战指南。核心在于通过Android系统广播机制,利用uni-app的plus对象调用原生接口,完成与RFID手持设备的“软硬件握手”。文章详细介绍了从环境准备、设备选型、核心代码实现到避坑优化的全流程,帮助开发者快速构建高效的RFID盘点或管理应用。

weixin_29161719的博客 403

树莓派驱动DLPDLCR230NPEVM+framebuffer显示图片

DLPDLCR230NPEVM DLP® LightCrafter™ Display 230NP 是一个易于使用的紧凑型即插即用评估平台,适用于消费类产品、工业、医疗和物联网 (IoT) 市场中的各种超便携显示应用。此评估模块 (EVM) 采用 DLP230NP 芯片组,该芯片组由DLP230NP.23 1080p DMD、DLPC3436显示控制器和DLPA2005PMIC/LED 驱动器组成。此 EVM 外形小巧,配备生产就绪型光学引擎以及支持 18 位 RGB 并行视频接口...

L_Y000的博客 2617

第十二届蓝桥杯 2021年省赛真题 (C/C++ 大学A组) 第一场

蓝桥杯 2021年省赛真题 (C/C++ 大学A组 )

NOW I GOT ONE WAY 7347

ABAP 7.40 新语法介绍系列之二 - ABAP 类型转换操作符 CONV

这个lv_input_s变量的唯一使命,就是接收来自 char10 类型的 lv_input_c 变量的值,然后传递到 print 方法里去。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1414
上一篇: hdu6464 广工大第十四届程序设计竞赛 D.免费送气球 离线处理+离散化+树状数组+二分
下一篇: CodeForces - Educational Round 62 E. Palindrome-less Arrays dp
krypton12138
博客等级 码龄9年 57粉丝 40原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值