2018CCPC女生赛重现 | 总结+部分题解

别再到处找题了!2018-2022年ICPC/CCPC赛题最全刷题指南(附VJ/牛客/PTA直达链接) 本文提供2018-2022年ICPC/CCPC赛题最全刷题指南,涵盖VJ、牛客、PTA等平台的赛题汇总与高效训练策略。通过赛事分级、平台特性解析和个性化训练路径设计,帮助选手快速提升算法竞赛水平,避免低效找题。 阅读详情

因为有很多队已经克隆过了

所以在VJ上可以看到其他队伍的排名情况和交题记录

刚开始几分钟 就有队伍过了F题

果断看F题 确实是个水题

HDU6292  赛题分析

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 1882    Accepted Submission(s): 869

 

Problem Description

著名出题人小Q每次比赛后都会写一份《赛题分析》,包含比赛概况、每题的参考算法以及一些统计数值。

对于一道题来说,小Q会统计最短的验题人代码长度(Shortest judge solution)以及赛内参赛队伍最短的AC代码长度(Shortest team solution)。

统计验题人代码长度比较容易,因为验题人最多也不会超过20个。但是统计选手代码长度就不容易了,因为大赛区动辄三四百支队伍。

请写一个程序,帮助小Q统计最短代码长度。

 

Input

第一行包含一个正整数T(1≤T≤13),表示赛题数量。

每道题第一行包含两个整数n,m(2≤n≤20,0≤m≤500),分别表示验题人数量以及AC了该题的队伍数量。

第二行包含n个正整数a1,a2,...,an(50≤ai≤65536),依次表示每个验题人的代码字节数。

第三行包含m个正整数b1,b2,...,bn(50≤bi≤65536),依次表示每支AC队伍的代码字节数。若m=0则该行为空行。

 

Output

对于第i(1≤i≤T)道题,输出三行,第一行输出Problem x:,其中x=i+1000。

第二行输出Shortest judge solution: y bytes.,其中y表示最短的验题人代码字节数。

第三行输出Shortest team solution: z bytes.,其中z表示最短的选手代码字节数,若不存在请输出N/A。

注意:间隔都是一个空格。

 

Sample Input

2 
3 2 
3627 1460 
5288 2365 2671 
2 0 
5510 7682

Sample Output

Problem 1001:

Shortest judge solution: 1460 bytes.

Shortest team solution: 2365 bytes.

Problem 1002:

Shortest judge solution: 5510 bytes.

Shortest team solution: N/A bytes.

 思路:

暴力寻找最小值即可

注意判断 m 输入为 0 时 不输出最小值 而是 N/A

(我因为少了一个句号没发现 而WA了好多发 还好队友大白也写了一遍就AC了) 

代码

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int main()
{
    int t, n, m, x, y;
    scanf("%d", &t);
    for (int i = 1; i <= t; i++) {
        scanf("%d%d", &n, &m);
        printf("Problem %d:\n", 1000 + i);
        scanf("%d", &x);
        int minn = x;
        for (int j = 1; j < n; j++) {
            scanf("%d", &x);
            minn = min(minn, x);
        }
        printf("Shortest judge solution: %d bytes.\n", minn);
        if (m > 0) {
            scanf("%d", &y);
            int  mi = y;
            for (int k = 1; k < m; k++) {
                scanf("%d", &y);
                mi = min(mi, y);
            }
            printf("Shortest team solution: %d bytes.\n", mi);
        } else {
            printf("Shortest team solution: N/A bytes.\n");
        }
    }
    return 0;
}

PS: 这里不用long long ,数据不算很大……

 

与此同时 Alone 看了K题

我没仔细看 

HDU6297 CCPC直播

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 2128    Accepted Submission(s): 847

 

Problem Description

在比特镇举行的中国大学生程序设计竞赛CCPC(China Collegiate Programming Contest)开始啦!这次比赛中加入了现场视频直播,而在直播屏幕的左下角,会显示评测队列。

比特镇的科技水平并不发达,直播分辨率并不高。准确地说,每个评测记录将被显示在1行38列的像素格上。一条评测记录由4个部分组成,从左往右依次为排名(3像素),队名(16像素),题号(4像素),评测情况(12像素)。相邻两个部分之间由1像素的分隔线|分开。其中,排名右对齐显示,队名左对齐显示,长度不足时用空格补齐。题号一定是4位正整数,因此恰好占据4像素。评测情况则比较复杂,它由两侧的括号[]以及中间10像素组成。

样例第一行表示排名第19的队伍qqqqq_University提交了题目1001,已经通过了30%的测试点,故左对齐显示3个X。

样例第二行表示排名第125的队伍quailty_U_2提交了题目1002,评测结果为WA,故居中显示WA,左边留4像素空格。

样例第三行需要居中显示TLE,左边同样留4像素空格。

样例第四行这支队伍是全场第一个通过1003的,故在AC后加上字符∗来特殊标注。

请写一个程序,对于每条评测记录产生直播信息。

Input

第一行包含一个正整数T(1≤T≤1000),表示评测记录的数量。

接下来T行,每行首先是一个正整数rank(1≤rank≤400),表示队伍的排名。

接下来一个长度不超过16的字符串S,表示队名,S仅由大小写字母、数字以及下划线"_"组成。

接下来一个正整数prob(1001≤prob≤1013),表示题号。

接下来一个字符串T(T∈{Running,AC,WA,TLE,MLE,RTE,CE,OLE,PE,FB}),表示评测状态,除Running外均表示评测结束。若为Running,则还会输入一个正整数p(1≤p≤9),表示已经通过了p×10%的测试点。若为FB,则表示全场第一个通过该题,应显示AC∗。

Output

对于每条评测记录,按要求输出一行一个长度为38的字符串,即直播显示效果。

 

Sample Input

5

19 qqqqq_University 1001 Running 3

125 quailty_U_2 1002 WA

4 quailty_U_3 1003 TLE

1 quailty_U_4 1003 FB

2 qqqqq 1001 AC

Sample Output

19|qqqqq_University|1001|[XXX ]

125|quailty_U_2 |1002|[ WA ]

4|quailty_U_3 |1003|[ TLE ]

1|quailty_U_4 |1003|[ AC* ]

2|qqqqq |1001|[ AC ]

以图片为准(不知道为啥 复制过来就长得不一样了emm

 

刚刚看了题意 大致为:给出 T 组数据 要求按照格式输出一遍

控制输出就好了……

代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    //freopen("in.txt","r",stdin);
    int t;
    scanf("%d",&t);
    char award[5],name[20],prob[5],status[10];
    while(t--)
    {
        scanf("%s",award);
        scanf("%s",name);
        scanf("%s",prob);
        scanf("%s",status);
        if(strlen(award)<3)
        {
            for(int i=0;i<3-strlen(award);i++)
                printf(" ");
        }
        printf("%s|",award);
        printf("%s",name);
        if(strlen(name)<16)
        {
            for(int i=0;i<16-strlen(name);i++)
                printf(" ");
        }
        printf("|%s|[",prob);
        if(status[1]=='u')
        {
            int p;
            scanf("%d",&p);
            for(int i=0;i<p;i++)
                printf("X");
            if(p<10)
            for(int i=0;i<10-p;i++)
                printf(" ");
            printf("]\n");
        }
        else
        {
            if(status[0]=='F')
                printf("    AC*   ]\n");
            else if(status[0]=='A'||status[0]=='W'||status[0]=='P'||status[0]=='C')
                printf("    %s    ]\n",status);
            else
                printf("    %s   ]\n",status);
        }
    }
    return 0;

 

接着看了H题

也是Alone做的

一个字符串比较的问题

HDU6294  SA-IS后缀数组

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 2421    Accepted Submission(s): 689

 

Problem Description

小Q最近阅读了SA-IS算法在线性时间内构造后缀数组的相关论文,面对任何字符串题,都可以想出线性时间的算法。

小T在经历过二分图匹配事件后,再也不相信小Q所说的话。面对小Q,小T又给出了一道字符串题:

给定一个长度为n的小写字符串S[1..n],设sufi表示以i 为开始的后缀,即S[i..n]。

记|X|为字符串X的长度,对于两个字符串X和Y,定义X的字典序比Y小,当且仅当存在非负整数k(k≤min(|X|,|Y|))使得X的前k个字符与Y的前 k个字符对应相同,并且要么满足|X|=k且|Y|>k,要么满足k<min(|X|,|Y|)且X的第k+1个字符比Y的第k+1个字符小。例如aa的字典序比aaa小,ab的字典序比ba小。

请对每个i(1≤i<n),判断sufi和sufi+1的字典序大小关系。

只会吹牛的小Q又不会做了,所以他再一次向你紧急求助。请写一个程序,判断相邻两个后缀的大小关系。

Input

第一行包含一个正整数T(1≤T≤10),表示测试数据的组数。

每组数据第一行包含一个正整数n(2≤n≤1000000),表示字符串S的长度。

第二行包含一个长度为n的小写字符串S。

Output

对于每组数据,输出一行n−1个字符,第i个字符表示sufi和sufi+1的大小关系,若sufi<sufi+1,输出<,否则输出>,显然不存在相等关系。

Sample Input

1

17

quailtyacmbestacm

Sample Output

<><<<<><<><<<><<

 

思路:

从第一个字符开始比较 如果s[i] < s[i+1] 则是 < 否则是 >

如果是 s[i] == s[i+1] 就继续往后找不相等的字符 再次判断 

中间一段相等的字符比较的结果由 第一个不相等的字符决定

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e7+5;
char s[maxn],ans[maxn];
int main()
{
    //freopen("in.txt","r",stdin);
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        memset(ans,0,sizeof(ans));
        scanf("%d",&n);
        scanf("%s",s);
        int len=0,pos=0;
        for(int i=0;i<n-1;i++)
        {
            pos=0;
            if(s[i]<s[i+1])
                ans[len++]='<';
            else if(s[i]>s[i+1])
                ans[len++]='>';
            else
            {
                pos=i;
                while(s[i]==s[i+1])
                    i++;
                //printf("*%d\n",i);
                if(s[i]<s[i+1])
                {
                    for(int j=pos;j<=i;j++)
                        ans[len++]='<';
                }
                else if(s[i]>s[i+1])
                {
                    for(int j=pos;j<=i;j++)
                        ans[len++]='>';
                }
                //printf("*%d\n",len);
                if(i==n-1)
                    ans[len-1]=0;
                //i--;
            }
        }

        printf("%s\n",ans);
    }
    return 0;
}

 在挂机之前看了 B 题

HDU6288  缺失的数据范围

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 3593    Accepted Submission(s): 721

Problem Description

著名出题人小Q出过非常多的题目,在这个漫长的过程中他发现,确定题目的数据范围是非常痛苦的一件事。

每当思考完一道题目的时间效率,小Q就需要结合时限以及评测机配置来设置合理的数据范围。

因为确定数据范围是一件痛苦的事,小Q出了非常多的题目之后,都没有它们设置数据范围。对于一道题目,小Q会告诉你他的算法的时间复杂度为O(nalogbn),且蕴含在这个大O记号下的常数为1。同时,小Q还会告诉你评测机在规定时限内可以执行k条指令。小Q认为只要na(⌈log2n⌉)b不超过k,那么就是合理的数据范围。其中,⌈x⌉表示最小的不小于x的正整数,即x上取整。

自然,小Q希望题目的数据范围n越大越好,他希望你写一个程序帮助他设置最大的数据范围。

Input

第一行包含一个正整数T(1≤T≤1000),表示测试数据的组数。

每组数据包含一行三个正整数a,b,k(1≤a,b≤10,106≤k≤1018),分别描述时间复杂度以及允许的指令数。

Output

对于每组数据,输出一行一个正整数n,即最大可能的n。

Sample Input

3

1 1 100000000

2 1 100000000

1 3 200000000

Sample Output

4347826

2886

48828

思路:

给出a ,b ,k

根据公式求得 最大的 n 使得 n ^ a * (log2 (n)) ^ b <= k

感觉二分就可以

但是 没注意到 math 头文件中的log函数  不能用于long long 

所以要手写 log2(n)

同时还有一个注意点是 

当乘的过程中 已经超出k 的大小 就直接找下一个mid

 

所以在看了题解之后 自己写了一遍代码

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
#define LL long long
LL aa[62];
LL t, a, b;
LL k;
LL Log(LL x)
{
    LL pos = lower_bound(aa+1, aa + 61, x) - aa;
    return pos;
}
bool pp(LL x)
{
    LL sum = 1, sum2 = 1;
    for (LL i = 0; i < a; i++) {
        if (sum > k / x) {
            return false;
        }
        sum *= x;
        if (sum > k) {
            return false;
        }
    }
    LL h = Log(x);
    for (LL i = 0; i < b; i++) {
        if (sum2 > k / h) {
            return false;
        }
        sum2 *= h;
        if (sum2 > k) {
            return false;
        }
    }
    if (sum > k / sum2) {
        return false;
    }
    if (sum * sum2 <= k) {
        return true;
    }
}
int main()
{
    aa[0] = 1;
    for (int i = 1; i < 60; i++) {
        aa[i] = aa[i - 1] * 2;
    }
    scanf("%lld", &t);
    for (int i = 0; i < t; i++) {
        scanf("%lld%lld%lld", &a, &b, &k);
        LL l = 1, r = k, mid, ans = 0;
        while (l <= r) {
            mid = (l + r) / 2;
            if (pp(mid)) {
                l = mid + 1;
                ans = mid;
            } else  {
                r = mid - 1;
            }
        }
       // cout << a << " " << mid << endl;
        printf("%lld\n", ans);
    }
    return 0;
}

还有A题感觉可以做

最开始想的是线段树 

后来发现查询的时候 可能会出错

所以稍微看了一下 莫队算法 结果另一道 E题是树上莫队……

待填坑。。。

 

HDU6290  奢侈的旅行

Time Limit: 14000/7000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 2066    Accepted Submission(s): 427

Problem Description

高玩小Q不仅喜欢玩寻宝游戏,还喜欢一款升级养成类游戏。在这个游戏的世界地图中一共有n个城镇,编号依次为1到n。

这些城镇之间有m条单向道路,第i 条单项道路包含四个参数ui,vi,ai,bi,表示一条从ui号城镇出发,在vi号城镇结束的单向道路,因为是单向道路,这不意味着小Q可以从vi沿着该道路走到ui。小Q的初始等级level为1,每当试图经过一条道路时,需要支付cost=log2level+ailevel点积分,并且经过该道路后,小Q的等级会提升ai级,到达level+ai级。但是每条道路都会在一定意义上歧视低消费玩家,准确地说,如果该次所需积分cost<bi,那么小Q不能经过该次道路,也不能提升相应的等级。

注意:本游戏中等级为正整数,但是积分可以是任意实数。

小Q位于1号城镇,等级为1,现在为了做任务要到n号城镇去。这将会是一次奢侈的旅行,请写一个程序帮助小Q找到需要支付的总积分最少的一条路线,或判断这是不可能的。

Input

第一行包含一个正整数T(1≤T≤30),表示测试数据的组数。

每组数据第一行包含两个整数n,m(2≤n≤100000,1≤m≤200000),表示城镇数和道路数。

接下来m行,每行四个整数ui,vi,ai,bi(1≤ui,vi≤n,ui≠vi,0≤ai≤109,0≤bi≤60),分别表示每条单向道路。

Output

对于每组数据,输出一行一个整数,即最少所需的总积分的整数部分,如:4.9999输出4,1.0输出1。若不存在合法路线请输出−1。

Sample Input

1

3 3

1 2 3

2 2 3

1 6 1

3 5 0

Sample Output

2

 

这个题目是看了 其他人的题解写的……

因为时间有限制

所以要用堆优化的迪杰斯特拉算法

加了一些自己对代码的理解

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
#define LL long long
const int maxn = 200005;
struct edge {
    int u, v, a, b, next;
} e[maxn];
int num, head[maxn];
void insert_edge(int u, int v, int a, int b)
{
    e[num].a = a;
    e[num].b = b;
    e[num].u = u;
    e[num].v = v;
    e[num].next = head[u];
    head[u] = num++;
}
struct node {
    int id;
    LL d;
    node (int id,LL d):id(id),d(d){}
    bool operator < (const node &A)const {
        return d>A.d;
    }
    //重载<
    //优先队列反的
};
LL d[maxn];
bool vis[maxn];
int dis(int s, int t)
{
    memset(d, 0x3f, sizeof d);//将d数组的所有值变成最大
    memset(vis, 0, sizeof vis);
    priority_queue<node> q;//优先队列 堆
    q.push(node(s,1));
    d[s] = 1;
    while (!q.empty()) {
        node tp1 = q.top();//根节点
        q.pop();
        int tp = tp1.id;
        if (tp == t) {
            for (int i = 1;; i++)
                if ((1LL << i) > tp1.d) {
                    return i - 1;
                }
                //找到第一个比根节点短的路
        }
        if (vis[tp]) {
            continue;
        }
        vis[tp] = 1;//标记经过的点
        for (int i = head[tp]; i != -1; i = e[i].next) {
            if (vis[e[i].v]) {
                continue;
            }
            //已经经过了这个点
            if (((e[i].a + tp1.d) / tp1.d) >= (1LL << e[i].b) && e[i].a + tp1.d < d[e[i].v]) {
                d[e[i].v] = e[i].a + tp1.d;
                q.push(node(e[i].v, d[e[i].v]));
            }
            //判断能否通过这条边
            //可以通过的话就将这条边加入到优先队列中
        }
    }
    return -1;
}

int main ()
{
    int T;
    scanf("%d", &T);
    while (T--) {
        memset(head, -1, sizeof head);
        num = 0;
        int u, v, a, b;
        int N, M;
        scanf("%d%d", &N, &M);
        for (int i = 0; i < M; i++) {
            scanf("%d%d%d%d", &u, &v, &a, &b);
            insert_edge(u, v, a, b);
        }
        printf("%d\n", dis(1, N));
    }
    return 0;
}
2018 CCPC 女生赛题解 A题 HDU 6287 题目大意:     有 T 组样例,每组会给出 a[ i [ 序列(长度为 n)及m次询问,每次询问给出 l , r , d 三个数,问 a[ i ] 序列在 l 到 r 的范围内 a[ i ] 的乘积是不是 d 的倍数,是的话输出Yes,不是的话输出No。 输入样例: 1 5 4 6 4 7 2 5 1 2 24 1 3 18 2 5 17 3 5 35 1 5 4 6 4 7 2 5 1 2 24 1 3 18 2 5 17 3 阅读详情

相关推荐

ICPC/CCPC选手必备:2018-2022年所有赛题链接整理与刷题平台指北

本文为ICPC/CCPC选手提供2018-2022年赛题资源全解析与实战策略,涵盖Gym、牛客等四大平台的深度评测与刷题技巧。通过工程化思维拆解真题资源,帮助选手构建高效训练体系,提升竞技编程能力。特别推荐使用Codeforces Gym获取完整测试数据和虚拟参赛模式。

weixin_33524659的博客 374

2018 ccpc 女生赛 奢侈的旅行 (堆优化dijkstra)

奢侈的旅行Time Limit: 14000/7000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)Total Submission(s): 394    Accepted Submission(s): 78Problem Description高玩小Q不仅喜欢玩寻宝游戏,还喜欢一款升级养成类游戏。在这个游戏的世界地...

sxh759151483的博客 598

ICPC/CCPC选手必看:2018-2022年所有赛题在线评测平台整理(附VJ/PTA/牛客链接)

本文为ICPC/CCPC选手提供2018-2022年赛题在线评测平台的全方位整理,涵盖VJ、PTA、牛客等主流平台,并详细解析各平台特性与适用场景。通过智能训练系统构建和实战策略分享,帮助选手高效提升竞赛能力,精准掌握赛题资源分布与更新机制。

weixin_30225755的博客 253

2018 ccpc 女生赛 经验总结

去年拿了铜首,今年拿了银末,好了,恭喜我真的进步了一名!hhh 今年去比赛之前,往年和我组队的一个妹子要去看周杰伦的演唱会,同时,我们俱乐部只有一个学妹,于是我千辛万苦邀请了大三的学姐,横跨三个年级才组上的队。。去的时候就想,不管怎么样就去练练手了,毕竟也是一场比赛。 热身赛开始的时候,凭借自己的手速还稳稳的进入了前几名,然而正式赛的时候,07水题少写了一个problem wa1 后...

beckyUp的博客 2599

2018 ccpc 网络赛总结及部分题解

参加的第一场正儿八经的ACM比赛,从头到尾连开五题最终除了1004签到之外全部凉凉。总结一下,在做题策略上还是不要过于长时间一个人生怼一道题,要注重团队合作的意识,除此之外,能力还是差很多,做题量远远不够,对模型的分析和转化能力待加强。 大概就说下开了的那五题吧 链接 1001 hdu6438 Buy and Resell 题目大意:商人能在N个地方以aiai的价格买入或卖出商品,在每个地方...

风花雪月流残败局 2784

2018CCPC网络赛题解

2018中国大学生程序设计竞赛 - 网络选拔赛

2018 CCPC网络赛部分题解

听说莫干山一日游?比赛当天体验还是略差的,没想到hdu这么大的平台能出问题= =计蒜客可能笑出了声。不过估计还是凉了,就算体验极好自己太菜还是不行啊QAQ,听说省赛四省赛能补名额,弱校也有名额,希望能续上参加一波现场赛。 1001 Buy and Resell 1001 Buy and Resell 题解         当时做出来的好像不多,感觉并没有那么难(然而还是不会)。这个题当时还...

iwts 1074

博途WinCC上位机避坑指南:从工控机选型到趋势图优化的完整流程

本文详细解析了博途WinCC上位机开发全流程,从工控机选型到趋势图优化的关键技巧。针对工业自动化场景,提供硬件配置指南、网络优化方案和性能提升策略,帮助工程师避开常见陷阱,实现稳定高效的HMI系统部署。特别强调PC Station与传统触摸屏的选型对比及SIMATIC NET配置优化。

pp12345的博客 278

CCPC2018女生赛口算训练6287

#include <cstdio> #include <vector> #include <algorithm> #include <iostream> using namespace std; const int N = 1e5 + 5; vector<int> prime[N];//二维的质因数容器,每个prime[N]存的是输入序列中的下标 //二分法查找质因数,用lower_bound和upper_bound函数 int query(i.

yao__zhu的博客 287

基于开源项目构建 CFS(网络靶场实战演练)平台

摘要:构建CFS网络靶场可使用多个开源组件组合,包括EVE-NG/GNS3或ContainerLab构建网络环境,Kasm提供工作空间,CALDERA+Atomic Red Team实现攻击模拟,DetectionLab建立防御环境,Malcolm/Arkime进行流量监控,CyRIS提供编排框架,Vulhub/DVWA创建漏洞靶标。关键在于通过API深度集成各组件,同时需注重安全隔离、资源规划及维护成本。建议开发统一管理平台,结合Ansible/Terraform实现自动化部署,打造定制化实战演练环境。(

深山技术宅的博客 1842

大疆智图002:大疆智图倾斜摄影建模流程

本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。

qq_31762031的博客 1万+

2018女生赛解题记录

第一题:ccpc直播(简单输出题)水 #include<iostream> #include<string> #include<iomanip> using namespace std; int main() { int T; cin>>T; string str,Tstr; int prob,rank,n; whil...

weixin_34409822的博客 220

用STM32L552驱动AD9102:一个硬件工程师的实战避坑指南(附完整代码)

本文详细介绍了如何使用STM32L552微控制器驱动AD9102任意波形发生器芯片,从硬件设计到波形生成的完整实战指南。内容包括电源架构、时钟电路设计、输出调理电路等关键硬件设计要点,以及软件驱动架构、波形存储优化和典型波形生成实例。通过实战经验分享,帮助硬件工程师避开常见设计陷阱,提升开发效率。

weixin_30889885的博客 333

【2018CCPC女生赛】奢侈的旅行 HDU 6290

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6290 官方题解: 比赛的时候是推出了公式的,奈何最后卡在TLE。 Q神放话:只要你敢写,我就敢卡 行吧,谁让人家是出题人呢。。 代码: #include &amp;lt;bits/stdc++.h&amp;gt; #define LL long long using namespace std; ty...

误入藕花深处 1021

项目篇:移动平台机械臂视觉定位抓取实施(基于ROS架构)

ROS包内容: 这篇日志的目的是快速项目实施,所以详细的部分会不断补充。 1、相机采集包(创建抓取图像服务,单张) Realsense Camera(微软深度摄像头,官方提供ros包) Pylon Camera(basler相机,官方提供ros包) 2、定位算法包(抓取图像,定位标志物) Aruco_ros (二维码定位,官方提供ros包) Apriltag (二维码定位,官方提供ros包)...

南北粉面馆 6049

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

|~~~热爱生活、努力学习的小伙汁~~~| 1371

2018 ccpc女生赛 口算训练 (二分 + 唯一分解定理)

小Q非常喜欢数学,但是他的口算能力非常弱。因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力。 每个问题给出三个正整数l,r,dl,r,d,小Q需要通过口算快速判断al×al+1×...×ar−1×aral×al+1×...×ar−1×ar是不是dd的倍数。 小Q迅速地回答了出来,但是小T并不知道正确答案是...

sxh759151483的博客 862

第一节:从Chat_Bot 到 AI_Agent——一个范式转换

本文系统剖析了工业级AI代理系统ClaudeCode的设计原理与工程实践。通过对比ChatBot与Agent的三个本质差异:自主循环决策vs单轮应答、环境交互vs纯文本I/O、持久状态管理vs无状态对话,揭示了构建生产级Agent系统的关键挑战。文章详细解析了ClaudeCode的五层架构设计、1800+文件组成的运行时系统,包括工具调度、权限管理、状态持久化等核心机制,并阐述了从简单API调用到完整Agent系统的演进路径。

2201_75869398的博客 67

/5.27 女生赛总结/

好的吧,真的是有史以来第一次出去比赛…… 好像大家都也还是给予厚望的,女生赛。前面过了两个其实还好吧……最后卡,卡到两三个题后来还是出不来了。……我们刻意避开了……“打铁关”但是还是打铁了qaq,zj说dp的方程明明都写对了啊。他们T了那是因为暴力,这种错法我还是第一次见啊。去之前自己还带了自己打印的1/3博客,就已经有1.6w字了,有点小自豪感。但是啊其实感觉前面bfs什么的都写的很虚,有的题也...

lx233 914

大模型LoRA微调调参的实战技巧(持续更新)

本文主要介绍了大模型LoRA微调调参的实战技巧,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 实战技巧

herosunly的博客 20万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

第二届CCPC女生赛 简易题解

前言:2015/5/13用虚拟OJ的方式3人一台电脑打了CCPC女生赛,一共做出9题(共10题),因为自己太坑D题错了9发,罚时爆炸,在现场就只能排第2,上交小姐姐太强啦,很稳。接下来就把做出来的题,写个简易题解,题目在HDU上可以找到,题号对应为6023-6032。A:模拟水题,不说了。B:题意:有n个节点,我们可以选择在每个节点建或不建商店。 对于第i个点,其坐标是a[i].x,建设商店的成本为

I good vegetable a! 1260

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

第二届CCPC女生赛 粗略题解(要做重现的不要看哦)

因为再不全力投入华为软件精英挑战赛就来不及了! 而且直播时讲过题了,所以只能粗略写一个题解,希望大家包涵>.< 基本可以参考代码,可以画图模拟加思考脑补其原理与过程23333~~ 会后续有人写题解的啦!感谢参加经费、人员都不足的第二届CCPC女生赛! 希望明年我也有机会参赛! 06是claris的防AK题,虽然我试图几次想要说服换掉这题。想补的可以找claris或者等几天2333

snowy_smile的博客 5976

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

2019年ccpc女生赛重现赛题解I

2019年ccpc女生赛重现赛题解I 题目: Union Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 7 Accepted Submission(s): 4 Problem Description 有三个集合 S1, S2,...

V4yne.的博客 902

HDU 6031(CCPC女生赛1009)

题目大意是给一颗树,n个点,1为根,m次询问,每次询问给出两个集合A,B。求集合A和集合B中的点的深度最大的LCA。 大致思路是深搜,处理出每个点的父节点,倍增法处理出anc数组。 每次询问时,二分目标深度,找出集合A中每个点在目标深度的祖先,并插入集合S,再找出集合B中每个点在目标深度的祖先,如果祖先在集合S中,说明这个深度A,B存在公共祖先。 T不大,sumK也不大,可以水过去。#prag

Infinity的博客 1250

"字节跳动杯"2018中国大学生程序设计竞赛-女生专场题解(非官方)

cxy、ryg、whg题解之2018中国大学生程序设计竞赛

包络面的博客 549

2018CCPC女生赛 C 二分+取整Log

题目链接 题意: 给定三个整数a,b,Ka,b,Ka,b,K,求使得na⌈log2n⌉b&amp;lt;=Kna⌈log2n⌉b&amp;lt;=Kn^a {\lceil log_2n\rceil}^b nnn的最大值。 思路: 因为函数单调,显然可以直接二分nnn去验证。 此题有两个需要注意的地方: 一是对于log以2为底的函数取整,不能直接使用log函数来求,会带来精度的误差。需要模拟计算...

新熊君的博客 629
上一篇: CCPC2019湘潭赛总结 | 打铁旅游记 + 榜单链接
下一篇: 2019湘潭赛题解 | E题 XTCPC (三种写法)
OneLine_
博客等级 码龄9年 48粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值