北大2019计算机学科夏令营上机考试

news2024/10/1 12:24:09

目录

A:数与字符串【找规律】

B:打印月历【暴力水题】

C:Hopscotch【BFS】

D:上楼梯【动态规划】

E:Life Line 【图】

F:跳蛙【DSP】

G:Falling Leaves【二叉搜索树】

H:昂贵的聘礼【图】

I:Connect【放弃】

A:数与字符串【找规律】

#include<iostream>
#include<cstring>
using namespace std;
int flag;
char n[8],res[8];
int main(void){
    cin>>n;
    while(strcmp(n,"0")!=0){
        int len=strlen(n);
        flag=1;
        for(int i=0;i<len-1;i++){
            if(n[i]!='9') flag=0;
        }
        if(flag==1) strcpy(res,n);
        else{
            for(int i=0;i<len-1;i++){
                res[i]='9';
            }
            res[len-1]='\0';
        }
        cout<<res<<endl;
        cin>>n;
    }
}

#include<iostream>
#include<cstring>
using namespace std;
int flag;
char n[8],res[8];
int main(void){
	cin>>n;
	while(strcmp(n,"0")!=0){
		int len=strlen(n);
		flag=1;
		
		for(int i=0;i<len-1;i++){
			if(n[i]!='9') flag=0;
		}
		if(flag==1)  cout<<n;
		for(int i=0;i<len-1;i++) cout<<"9";	

		cout<<endl;
		cin>>n;
	}
}

B:打印月历【暴力水题】

#include<iostream>
using namespace std;
int year,month;

int main(){
    cin>>year>>month;
    cout<<"Sun Mon Tue Wed Thu Fri Sat"<<endl;
    if((year%4==0&&year%100!=0)||(year%400==0))//闰年 
    { 
        if(month==2) cout<<"      1   2   3   4   5   6"<<endl
 <<"  7   8   9  10  11  12  13"<<endl
 <<" 14  15  16  17  18  19  20"<<endl
 <<" 21  22  23  24  25  26  27"<<endl
 <<" 28  29";    
    if(month==2) cout<<"      1   2   3   4   5   6"<<endl
 <<"  7   8   9  10  11  12  13"<<endl
 <<" 14  15  16  17  18  19  20"<<endl
 <<" 21  22  23  24  25  26  27"<<endl
 <<" 28";    
    }
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) 
            cout<<"      1   2   3   4   5   6"<<endl
 <<"  7   8   9  10  11  12  13"<<endl
 <<" 14  15  16  17  18  19  20"<<endl
 <<" 21  22  23  24  25  26  27"<<endl
 <<" 28  29  30  31";    
       if(month==4||month==6||month==9||month==11)
           cout<<"      1   2   3   4   5   6"<<endl
 <<"  7   8   9  10  11  12  13"<<endl
 <<" 14  15  16  17  18  19  20"<<endl
 <<" 21  22  23  24  25  26  27"<<endl
 <<" 28  29  30";
    return 0; 
}
 

C:Hopscotch【BFS】

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;

typedef struct house
{
	int data;
	string str;
}house;

char a[100000];
int main()
{
	int n,m;
	while(cin>>n>>m)
	{
		if(m==0&&n==0) return 0;
		if(m==n)
		{
			cout<<"0"; 
			break;
		}
    	memset(a,0,sizeof(a));
		/*格子初始化*/
		house h;
		h.data = n;
		h.str = "";
		
		queue<house> q;//遍历的辅助队列 
		q.push(h);

		while(!q.empty())
		{
			/*队首出队*/
			house Front = q.front();
			q.pop();
			
			/*第一种情况*/
			house now;
			now.data = Front.data * 3;
			now.str = Front.str + "H";
			if(now.data==m)//达到目标,停止搜索 
			{
				cout<<now.str.length()<<endl<<now.str<<endl;
				break;
			}
			if(a[now.data]==0)//检查之前有没有得过这个结果(剪枝) 
			{
				q.push(now);
				a[now.data] = 1;
			}
			
			
			/*第二种情况*/
			now.data = Front.data / 2;
			now.str = Front.str + "O";
			if(now.data==m)//同上
			{
				cout<<now.str.length()<<endl<<now.str<<endl;
				break;
			} 
			if(now.data!=0 && a[now.data]==0)//如果为0或者之前访问过了,那么剪枝(不入队) 
			{
				q.push(now);
			}
		}
	}
	return 0;
}

没有可以提交的地方,但是测了几组数据都通过啦!

D:上楼梯【动态规划】

 (1条消息) 【POJ】2019计算机学科夏令营上机考试 D:上楼梯_Star Kirby的博客-CSDN博客

(1条消息) 告别动态规划,连刷40道动规算法题,我总结了动规的套路_Hollis Chuang的博客-CSDN博客

上面这个动态规划讲得很好,看一遍基本就能明白了,剩下就是做题

#include<cstdio>
typedef long long ll;
bool contain(int x){
	int temp;
	while(x){
		temp = x%4;
		if(temp==4) return true;
		x/=10;
	}
	return false;
}
ll f(int n,int k){
	ll bp[60];
	bp[0] = 1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=k&&j<=i;j++)
			if (j%10 ==4 || j/10==4) //不吉利 
				continue;
			else
				bp[i] += bp[i-j];
	return bp[n];
}
int main(){
	int n,k;
	scanf("%d%d",&n,&k);
	while(n!=0&&k!=0){
		printf("%lld\n",f(n,k));
		scanf("%d%d",&n,&k);
	}
	return 0;
}

①找到动态规划的目标数组(一定要搞清楚数组的具体含义)

②找到递推关系,一般就是这一步的状态是由什么得到的

③初始化数值!!!!!!很重要!!!特别是0的时候!!!

E:Life Line 【图】

参考:1414:Life Line【2019北大夏令营E】

#include <iostream>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <climits>

using namespace std;
#define MAXNODE 60
#define MAXN 12
int chess[MAXNODE];
struct Comp
{
    int node_num;
    int empty_nbr_num;
    Comp(int n0,int e0):node_num(n0),empty_nbr_num(e0){}
};
void insert_edge(unordered_map<int,vector<int>>&nbrs, unordered_map<int,vector<int>>&empty_enbrs,int node_id, int l)
{
    nbrs[node_id].push_back(l);
    nbrs[l].push_back(node_id);
    if(chess[node_id]==0 && chess[l]==0){
        empty_enbrs[node_id].push_back(l);
        empty_enbrs[l].push_back(node_id);
    }
}
int main()
{
    int N,C;
    int node_id;
    while(cin>>N>>C && (N||C)){
        node_id=0;
        vector<int>empty_node;
        int c;
        unordered_map<int,vector<int>>nbrs;
        unordered_map<int,vector<int>>empty_enbrs;
        for(int i=0; i<N; ++i){
            for(int j=0; j<=i; ++j){
                cin>>c;
                if(c==0){
                    empty_node.push_back(node_id);
                }
                chess[node_id++]=c;
            }
        }
        int tmp=0;
        for(int i=0; i<N-1; ++i){
            for(int j=0; j<=i; ++j){
                //triangle: tmp tmp+i+1 tmp+i+2
                int l=tmp+i+1;
                int r=tmp+i+2;
                insert_edge(nbrs,empty_enbrs,tmp,l);
                insert_edge(nbrs,empty_enbrs,tmp,r);
                insert_edge(nbrs,empty_enbrs,r,l);
                ++tmp;
            }
        }

       
        unordered_map<int,vector<Comp>> empty2comps,empty2Ccomps;
        int comp_sz;
        unordered_set<int>empty_nbrs;
        //bfs for comp
        int visited[MAXNODE]={0};//mark when pushing into queue(one node might be the same neighbor of different nodes)
        for(int i=0; i<node_id; ++i){
            if(visited[i]==0 && chess[i]){
                comp_sz=0;
                empty_nbrs.clear();
                //bfs
                c=chess[i];
                queue<int>q;
                q.push(i);visited[i]=1;
                int curr;
                while(q.empty()==0){
                    curr=q.front();q.pop();
                    ++comp_sz;
                    for(int nbr:nbrs[curr]){
                        if(chess[nbr]==0){
                            empty_nbrs.insert(nbr);
                        }
                        if(chess[nbr]==c && visited[nbr]==0){
                            q.push(nbr);
                            visited[nbr]=1;
                        }
                    }
                }
                int empty_nbrs_sz=empty_nbrs.size();
                if(c==C){
                    for(int e:empty_nbrs){
                        empty2Ccomps[e].emplace_back(comp_sz,empty_nbrs_sz);
                    }
                }else{
                    if(empty_nbrs_sz<=1){
                        for(int e:empty_nbrs){
                            empty2comps[e].emplace_back(comp_sz,empty_nbrs_sz);
                        }
                    }
                }
            }
        }

        int max_score=INT_MIN;
        for(int e:empty_node){
            //cout<<"empty:"<<e<<" "<<chess[e]<<endl;
            int score=0;
            //add
            for(Comp cp:empty2comps[e]){
                score+=cp.node_num;
            }
            //del
            int del_score=0;
            //check whether has other empty nbr besides e
            //note this added stone's empty nbr need to considered
            bool has_other_nbr=(empty_enbrs[e].size()>0);
            for(Comp cp:empty2Ccomps[e]){
                del_score+=cp.node_num;
                if(cp.empty_nbr_num>1){
                    has_other_nbr=1;
                }
            }
            if(has_other_nbr==0){//after connect, no empty nbr
                score-=del_score;
                --score;
            }
            //cout<<"score:"<<score<<endl;
            if(score>max_score){
                max_score=score;
            }
        }
        cout<<max_score<<endl;
    }
    return 0;
}

POJ平台可以测试:POJ平台链接

F:跳蛙【DSP】

//http://bailian.openjudge.cn/xly2019/F/
#define MAX_STATE 1100
int visited[MAX_STATE]={0};
//idx from 1
int n;
bool solve(int lf, int rf, int start){
    if(start==n){
        return 1;
    }
    if(visited[lf*100+start]) return 0;
    visited[lf*100+start]=1;
    //left
    if(start-lf>1){
        for(int i=1; i<=lf; ++i){
            if(solve(lf-i, rf+i, start-i-1)){
                return 1;
            }
        }
    }
    //right
    if(start+rf<n){
        for(int i=1; i<=rf; ++i){
            if(solve(lf+i, rf-i, start+i+1)){
                return 1;
            }
        }
    }
    //no solution
    return 0;
}

int main(){
    while(cin>>n && n){
        int lf=0,rf=0;
        char c;
        for(int i=0; i<n; ++i){
            cin>>c;
            if(c=='B') ++rf; 
        }
        if(solve(lf,rf,1)) cout<<"Y"<<endl;
        else cout<<"N"<<endl;
    }
    return 0;
}


/*
char map[10];
dfs(int x){  //x表示青蛙王当前的位置 
	if(x>=n) cout<<Y<<endl;
	if(map[x+1]=="N"&&map[x+2]==".") {
		swap(map[x],map[x+2]);
		dfs(x+2);
		swap(map[x+1],map[x+2]);
		dfs(x);
	}
	if(map[x-1]=="N"&&map[x-2]==".") {
		swap(map[x],map[x-2]);
		dfs(x-2);
		swap(map[x-1],map[x-2]);
		dfs(x);
	}
}
int main(){
	int n; 
	while(cin>>n&&n){
		for(int i=0;i<n;i++){
			cin>>map[i];
		}
		dfs(0);
	} 
	return 0;
}
*/

下半部分注释掉的是用深搜错误思路做的

满足条件的时候 青蛙王和普通青蛙可以跳  但是不一定跳 这样就有三种情况,而且我找不到递归出口  他们难道不是可以一直跳跳跳跳个没完没了,总不能把所有可能的位置排列全部找出来 然后全走过一遍置为1  再return吧。 

所以上述思路行不通!

改进后的这段代码通过递归实现了判断青蛙王是否能够到达棋盘最右侧的功能。

代码中的solve函数接收三个参数:lf表示青蛙王左侧的普通青蛙数量,rf表示青蛙王右侧的普通青蛙数量,start表示当前青蛙王的位置。

首先,如果当前位置已经到达最右侧(start==n),则返回1,表示可以到达。

然后,通过visited数组判断是否访问过当前状态,避免重复计算。visited数组的大小为MAX_STATE,根据最大的状态数来定义。

接下来,针对青蛙王向左和向右移动的情况进行判断。

1. 青蛙王向左移动:如果左侧有足够的空地(start-lf>1),则遍历左侧每一只普通青蛙,将当前青蛙王的位置和普通青蛙的数量更新为移动后的位置和数量,并递归调用solve函数。如果递归调用的返回值为1,则表示可以到达,直接返回1。

2. 青蛙王向右移动:如果右侧有足够的空地(start+rf<n),则遍历右侧每一只普通青蛙,将当前青蛙王的位置和普通青蛙的数量更新为移动后的位置和数量,并递归调用solve函数。如果递归调用的返回值为1,则表示可以到达,直接返回1。

最后,如果上述情况都不满足,则返回0,表示无法到达。

在主函数中,通过循环读取输入的数据,并调用solve函数进行判断。根据solve函数的返回值,输出相应的结果。

但是但是!!!没有提交入口,只有案例跑过了,其他数据不知道!

G:Falling Leaves【二叉搜索树】

#include <iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;

struct Node
{
	char data;
	Node *left;
	Node *right;
};
typedef struct Node* Tree;

string temp, str;

Tree Insert(Tree BST,char x)
{
	if(BST==NULL)
	{
		BST = (Tree)malloc(sizeof(Node));
		BST->data = x;
		BST->left=BST->right=NULL;
	}
	else{
		if(x<BST->data)//左节点 
		{
			BST->left = Insert(BST->left,x); 
		}
		else if(x>BST->data)//右节点
		{
			BST->right = Insert(BST->right,x); 
		} 
		//数据已存在的话就不插入 
	}
	return BST; 
}
Tree createBST(){  //建树
    Tree root = NULL;
    for(int i=0;i<str.length();i++)
    	root = Insert(root,str[i]);
    return root;    //返回根结点
}


void Print(Tree BST)
{
	if(BST!=NULL)
	{
		printf("%c",BST->data);
		Print(BST->left);
		Print(BST->right);
	}
}

int main(){
    while(cin >> temp){  //输入字符串
        if(temp != "*" && temp != "$"){
            //如果输入的字符串不是组结束符或结尾符
            str += temp;    //将出入的字符串加到str字符串尾部
            continue;
        }
        //如果输入的时组结束符或结尾符
        reverse(str.begin(),str.end()); //将str数组反转
        Tree bst = createBST();   //建树
        str = "";   //将str清空
        Print(bst); //输出前序遍历
        printf("\n");
        if(temp == "$")//如果是结尾符跳出循环
            break;
    }
    return 0;
}

注意点:要翻转序列!!!

在二叉搜索树中,如果叶子节点按照由小到大的顺序排列,那么在插入叶子节点时,首先要插入的是最大的叶子节点作为根节点,然后插入次大的叶子节点作为根节点的右子节点,再插入次次大的叶子节点作为右子节点的右子节点,以此类推。

而给定的输入叶子节点序列是按照由小到大的顺序排列的。为了满足上述的插入顺序,我们需要将输入的叶子节点序列反转,变成由大到小的顺序排列,这样在插入节点时就会按照正确的顺序进行。

通过调用`reverse(str.begin(),str.end())`函数,可以将字符串中的字符顺序进行反转。

在完成插入节点之后,我们再进行前序遍历,即根节点->左子树->右子树的顺序输出树中的节点值。这样,通过输入的叶子节点序列,就可以正确地构建出二叉搜索树,并按照前序遍历的顺序输出节点值。

H:昂贵的聘礼【图】

#include <iostream>
#include<stdio.h>
#include<string>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int m,n;
const int N=105;
const int INF=0x3f3f3f3f;
int price[N],level[N];
int edge[N][N];
int vis[N];
int d[N];
void init(){
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            edge[i][j]=INF;
        }
    }
    for(int i=0;i<n;i++){
        cin>>price[i]>>level[i];
        level[i]--;//0开始
        int x;
        cin>>x;
        for(int j=0;j<x;j++){
            int v,p;
            cin>>v>>p;
            v--;
            edge[v][i]=p;//v到i的价格为p
        }
    }
}
int dijkstr(){
    for(int i=0;i<n;i++)d[i]=price[i];//把起点当作超级源点
    for(int i=0;i<n;i++){
        int temp=INF;
        int x;//最小点
        for(int j=0;j<n;j++)
            if(vis[j]&&d[j]<=temp)
                temp=d[x=j];
            vis[x]=0;//不再走
            for(int j=0;j<n;j++)
                if(d[x]+edge[x][j]<d[j]&&vis[j])
                    d[j]=d[x]+edge[x][j];
        }
    return d[0];//0
}
int main()
{
    cin>>m>>n;
    init();
    int ans=INF;
    for(int i=0;i<n;i++){
        int minLevel=level[i];//最小
        for(int j=0;j<n;j++){
            if(level[j]-minLevel>m||minLevel>level[j])
                vis[j]=0;//不可
            else vis[j]=1;
        }
        int cur=dijkstr();
       // cout<<cur<<endl;
        ans=min(ans,cur);
    }
    cout<<ans<<endl;
    return 0;
}

I:Connect【放弃】

不想做了 最后一个题 放弃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea项目提交到git 这一篇就够了

1. 下载git 到本地文件夹 2. 在windows端打开命令行 winR 然后cmd 首先查看git是否安装成功 从这里就可以看出git已经安装成功 然后使用 git config --list 查看git的基本配置 如果是第一次使用&#xff0c;需要创建用户名和邮箱 配置成功后再次使用 git config --list …

生成式AI, 新兴职业?

动动发财的小手&#xff0c;点个赞吧&#xff01; 生成式AI是一种基于人工智能技术的创新领域&#xff0c;它的目标是通过机器学习和自然语言处理等技术来模拟人类的创造力和智慧&#xff0c;从而生成全新的内容&#xff0c;如文本、图像、音频等。生成式AI在近年来取得了巨大的…

php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)

获取指定资源学习记录信息 前言一、获取指定资源学习记录信息请求方式及url二、获取指定资源学习记录信息请求参数请求参数请求格式 三、单人单学习记录API封装函数四、单人多学习记录API封装函数总结 前言 开发使用小鹅通API的时候&#xff0c;以下是一些需要注意的事项&…

实战:RocketMQ高级功能代码实现

1&#xff0c;事务消息代码实现 之前我们已经在讨论订单业务消息丢失问题中引出了事务消息&#xff0c;本内容我们就实际用代码来实现一下事务消息吧。 首先我们用原生代码来实现一下事务消息&#xff0c;下面是事务消息生产者TransactionProducer类的代码&#xff0c;具体代码…

Reveser(小学期)

开门见山 看一下多少位的 Flag就在上面 给电灯通电 打开看一下主函数 看到这个判断同时&#xff0c;进去看到最后一个函数 看到最后一个判断&#xff0c;数组判断的个数是56个 在IDA里面v5这个参数确实是56&#xff0c;但是v2不是 我们放进去看一下发现 有了前面的一些&a…

20种常用的软件测试方法,建议先收藏再观看

软件测试在完整的项目当中算是最后一个环节&#xff0c;也是非常重要的一个环节。通过软件测试&#xff0c;我们才能得知一个程序是否符合标准。 小编整理出20种常见的软件测试方法&#xff0c;建议伙伴们先收藏再看。不敢说史上最全&#xff0c;但我办公室里十年软件测试经验…

创建Java文件时路径字符串的名字分割符

java.io.File的构造函数&#xff1a; 如果用File(String pathname)这个形式的构造函数&#xff0c;路径字符串pathname涉及名字分割符。 下面代码的几段各创建了一个文件&#xff0c;但有的写法就不正确&#xff0c;见代码中的注释&#xff1a; package com.thb;import java…

零信任:接入Authing进行身份认证

在之前的的文章中我们提到我们自己开发了一个Apisix的认证插件来实现认证&#xff0c;但是实际过程当中&#xff0c;我们同样也希望支持使用Keycloak&#xff0c;Authing&#xff0c;okta这类统一身份认证。本文主要是说明我们如何使用Authing这个身份认证供应商来实现登录认证…

Docker安装达梦M8数据库,Jdbc客户端乱码解决方案

Docker安装达梦M8 下载镜像tar包&#xff1a;https://eco.dameng.com/download/ #导入镜像 docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar # 启动容器 docker run -d -p 5236:5236 --restartalways --name dm8 --privilegedtrue -e PAGE_SIZE16 -e LD_LIBRARY_…

管理者必修的7门课

在现代商业世界中&#xff0c;管理者需要具备各种技能和知识&#xff0c;以便有效地领导他们的团队&#xff0c;并使他们的组织成功地达到其目标。虽然管理是一门复杂的学科&#xff0c;但有一些核心课程对于所有管理者来说都是必学的。 在本文中&#xff0c;我们将探讨管理者…

Multi-sensor KIT 多传感器开发板

1.前言 经过一段时间的思考后&#xff0c;我决定设计一款能够兼容多个传感器的开发板。这个开发板由核心底板和扩展板组成&#xff0c;其中核心底板预留了多路的I2C、SPI、UART、ADC等接口&#xff0c;而扩展板则兼容了QMI8658A-EVB和CH101/201-EVB的支持。这个设计可以让我更…

redis-主从安装

解决问题 1.数据安全问题 2.高并发读问题 1.主节点和 redis-单节点安装一致 2.从节点 daemonize yes port 6379 bind 0.0.0.0 requirepass 123456 save 3600 1 300 100 60 10000dir /usr/local/redis dbfilename dump.rdb logfile redis.log pidfile redis.pidreplicaof 172.2…

【SCADA】测试KingIOServer连接ModbusTCP设备

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 今天测试KingIOServer连接ModbusTCP设备&#xff0c;下面记录测试过程。 一、ModbusTCP设备 利用ModbusSlave模拟Modbus从站设备。 1、打开ModbusSlave软件&#xff0c;点击菜单栏【Setup】—>【SlaveDefinition……

ESP32设备驱动-SCD40二氧化碳湿度和温度传感器驱动

SCD40二氧化碳湿度和温度传感器驱动 文章目录 SCD40二氧化碳湿度和温度传感器驱动1、SCD40介绍2、硬件准备3、软件准备4、驱动实现1、SCD40介绍 SCD4x 是 Sensirion 的下一代微型 CO2 传感器。 该传感器基于光声 NDIR 传感原理和 Sensirion 的专利 PASens 和 CMOSens 技术,以…

初学spring5(七)AOP就这么简单

学习回顾&#xff1a;初学spring5&#xff08;六&#xff09;静态/动态代理模式 一、什么是AOP&#xff1f; AOP&#xff08;Aspect Oriented Programming&#xff09;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术…

什么是BFC?

BFC是什么东西? BFC 全称&#xff1a;Block Formatting Context&#xff0c; 名为块级格式化上下文。 W3C官方解释为&#xff1a;BFC是 Web 页面的可视 CSS 渲染的一部分&#xff0c;是块级盒子的布局过程发生的区域&#xff0c;也是浮动元素与其他元素交互的区域。 通俗一…

如何自己创建一个工具项目并上传到npm上使用

第一步&#xff1a;npm官网注册一个自己的账号 第二步&#xff1a;在cmd窗口创建一个项目&#xff08;这里我以vue3为例子&#xff09; npm create vite 项目名 选择框架&#xff1a; 选择语言&#xff1a; 在项目中使用命令安装项目依赖&#xff1a; npm i 运行项目&#…

华为mpls vpn跨域C-1方案配置案例

R1: dis current-configuration [V200R003C00] snmp-agent local-engineid 800007DB03000000000000 snmp-agent clock timezone China-Standard-Time minus 08:00:00 ip vpn-instance vpn1 //添加vpn实例vpn1 ipv4-family route-distinguisher 1:1 //RD标签 vpn-target 100:1 …

如何用javascript 实现条形码和二维码

条形码和二维码 条形码和二维码都是一种用于存储信息的编码系统&#xff0c;它们可以被扫描设备或图像识别设备读取。 1. 条形码&#xff1a; 由一组垂直线条组成&#xff0c;线条的粗细和间距不同可以表示不同的数字或字符。通常用于商品标识和销售管理&#xff0c;以便在商…

Zigbee MAC地址通信中发送模块指定了接收模块MAC地址却发送不了数据包的解决办法

Zigbee MAC地址通信中发送模块指定了接收模块MAC地址却发送不了数据包的解决办法 事情缘由 在做MAC地址通信的实验中&#xff0c;我将程序分别下载进模块&#xff0c;组网成功后&#xff0c;发送模块终端按下按键&#xff0c;接收模块协调器什么反应也没有&#xff0c;上位机…