第二次招新(2025)题解

2020同济大学电子与信息工程学院计算机系夏令营机试题目 第一题:签到题(10分) 题目要求: 键盘依次输入 4 个字符串,分别是临时学号、姓名、报考类别和本科学校,按右对齐方式输出,要求其中最长的字符串输出时左边无空格,4 行的冒号对齐,冒号为半角字符,前后各一个空格 输入要求: 1、四个字符串均不含空格,长度不超过 40 2、不考虑输入错误 输出要求: 1、共四行,不要有多余的空行 2、每行最后无多余的空格或其它字符 输入示例1: 输出示例1: 输入示例2: 输出示例2: 源代码 #include<bits/stdc++.h> using 阅读详情

下次机试将是基地建立以来最最最简单的一次

题目链接:https://ac.nowcoder.com/acm/contest/124021
密码:acm1123

签到题A、D
简单题F、G、K
中等题J、C、E
难题H、B、I、L

A.沙漏Ⅱ

该题为签到题
思路:如图所示1和2是完全相同的,只要画出1然后复制粘贴,最后封底封顶即可,封底和封顶也是重复的,如何打印代码注释中详细说明

请添加图片描述

最上面的一行长度为((n * 2) - 1) * 2 - 1或者n * 4 - 3

#include<stdio.h>
// #define int long long

void solve()
{
    int n;
    scanf("%d",&n);
/////////最上面一行封顶
    for(int i = 1; i <= ((n*2)-1)*2-1; i++){
        printf("*");
    }
    printf("\n");
    
/////////////第一部分//////////////////////////////
    //倒三角形(不打印尖和底)
    for(int i = 1; i <= n-2; i++){
        //最前面空格
        for(int j = 1; j <= i; j++){
            printf(" ");
        }
        //第一个三角形
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //中间空格
        for(int j = 1; j <= 2 * i - 1; j++){
            printf(" ");
        }
        //第二个三角形(和第一个三角形一样)
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //换行
        printf("\n");
    }
    //三角形(打印尖和底)
    for(int i = n - 1; i >= 1; i--){//反过来即可
        //最前面空格
        for(int j = 1; j <= i; j++){
            printf(" ");
        }
        //第一个三角形
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //中间空格
        for(int j = 1; j <= 2 * i - 1; j++){
            printf(" ");
        }
        //第二个三角形(和第一个三角形一样)
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //换行
        printf("\n");
    }
///////////////////////////////////////////////////////////
        ///最上面一行封顶
    for(int i = 1; i <= ((n*2)-1)*2-1; i++){
        printf("*");
    }
    printf("\n");
    
///////////////第二部分(复制第一部分即可)////////////////
    //倒三角形(不打印尖和底)
    for(int i = 1; i <= n-2; i++){
        //最前面空格
        for(int j = 1; j <= i; j++){
            printf(" ");
        }
        //第一个三角形
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //中间空格
        for(int j = 1; j <= 2 * i - 1; j++){
            printf(" ");
        }
        //第二个三角形(和第一个三角形一样)
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //换行
        printf("\n");
    }
    //三角形(打印尖和底)
    for(int i = n - 1; i >= 1; i--){//反过来即可
        //最前面空格
        for(int j = 1; j <= i; j++){
            printf(" ");
        }
        //第一个三角形
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //中间空格
        for(int j = 1; j <= 2 * i - 1; j++){
            printf(" ");
        }
        //第二个三角形(和第一个三角形一样)
        for(int j = 1; j <= (2 * n - 1) - 2 * i; j++){
            printf("*");
        }
        //换行
        printf("\n");
    }
    /////////////////////////////////////////
    //封底最下面一行(和最上面一行一样)
    for(int i = 1; i <= ((n*2)-1)*2-1; i++){
        printf("*");
    }
    printf("\n");
}

signed main()
{
    int t=1;
//    scanf("%lld", &t);
    while(t--)
    {
        solve();
    }
    return 0;
}

B.城市规划

这个题就是一个区间和并的模板题,但是对不会排序或者没学C++的来说确实有点难,就是输入区间之后对每个区间进行排序(先按l的大小升序,再按r的大小进行升序),然后遍历有区间重合就合并就好了。

#include<stdlib.h>
//#define int long long
int cmp(const void *a, const void *b) {//排序规则
    const int *A = (const int*)(a);
    const int *B = (const int*)(b);
    if (A[0] != B[0]) {
        return A[0] - B[0]; 
    }
    return A[1] - B[1];
}
void solve() {
    int n;
//    cin >> n;
    scanf("%d",&n);
    int q[100001][2] = {};
    for (int i = 0; i < n; i++) {
//        cin >> q[i][0] >> q[i][1]; //0存l,1存r
        scanf("%d %d",&q[i][0],&q[i][1]);
    }
    qsort(q,n,sizeof(q[0]),cmp);//排序
    int a[n][2], s = 0, st = -2e9, ed = -2e9;
    for (int i = 0; i < n; i++) {//合并区间
        if (q[i][0] > ed) {//判断区间是否重合
            if (st != -2e9) {
                a[s][0] = st;
                a[s++][1] = ed;
            }
            st = q[i][0], ed = q[i][1];//更新下一个区间
        } else
        {
            if(q[i][1]>ed)//重合更新区间的右边界
                ed=q[i][1];
        }
    }
    if (st != -2e9) {
        a[s][0] = st;
        a[s][1] = ed;
    }
//    cout << s << endl;
    printf("%d\n",s+1);
    for (int i = 0; i <= s; i++) {
//        cout << a[i][0] << ' ' << a[i][1] << endl;
        printf("%d %d\n",a[i][0],a[i][1]);
    }
}
signed main() {
//    ios::sync_with_stdio(0);
//    cin.tie(0), cout.tie(0);
    int t = 1;
    //cin>>t;
    while (t--) {
        solve();
    }
    return 0;
}

这个是C++代码会简单很多,因为C++中sort默认升序排序(二维也是一样的),用二维数组排序的话是(sort(q,q+n))

#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve()
{
    int n;
    cin>>n;
    vector<pair<int,int>> q(n),s;
    for(int i=0;i<n;i++)
    {
        cin>>q[i].first>>q[i].second;
    }
    sort(q.begin(),q.end());
    int st=-2e9,ed=-2e9;
    for(int i=0;i<n;i++)
    {
        if(q[i].first>ed)
        {
            if(st!=-2e9)
            {
                s.push_back({st,ed});
            }
            st=q[i].first,ed=q[i].second;
        }
        ed=max(ed,q[i].second);
    }
    if(st!=-2e9)
        s.push_back({st,ed});
    cout<<s.size()<<endl;
    for(int i=0;i<s.size();i++)
    {
        cout<<s[i].first<<' '<<s[i].second<<endl;
    }
}
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

C.1234?1432

题目有多种写法,这里给出递归写法思路,给出了n=2^k,n是2的次幂,所以每次都可以将n缩小一半直到为1。
根据图片提示我们知道每次可以将大的矩形分成四个小的矩形,进而我们可以将小的矩形分成四个更小的矩形。直到矩形大小为2。

#include<stdio.h>
int m[1500][1500];
int t = 1;
void met(int x, int y, int a, int b){//(x,a)和(y,b)分别为现在矩形的最左上和最右下坐标
    if(x+1==y){
        //左上
        m[x][a] = t++;
        //右下
        m[y][b] = t++;
        //左下
        m[y][a] = t++;
        //右上
        m[x][b] = t++;
        return ;
    }
    //左上
    met(x, x + (y - x - 1) / 2, a, a + (b - a - 1)/2);
    //右下
    met(x + (y - x - 1) / 2 + 1, y, a + (b - a - 1) / 2 + 1, b);
    //左下
    met(x + (y - x - 1) / 2 + 1, y, a, a + (b - a - 1)/2);
    //右上
    met(x, x + (y - x - 1) / 2, a + (b - a - 1) / 2 + 1, b);
}

void solve()
{
    int k;
    scanf("%d",&k);
    if(k==0){
        printf("1");
        return ;
    }
    int n = (int)pow(2, k);
    met(1,n,1,n);
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            printf("%d ",m[i][j]);
        }
        printf("\n");
    }
}
    
int main(){
    int t = 1;
//     cin >> t;
    while(t--)solve();
    return 0;
}

D.银元

很简单的一道题,大家都推出结果了,但是不仔细读题,题目写了数字可能很大,可以用字符串读入
因为题目上说每次只翻转 N-1 个,等价于只翻转一个,所以 N 个需要 N 次
直接输入输出就好

#include <stdio.h>
int main() {
	char str[2010];
	scanf("%s", str);
	printf("%s\n", str);
	return 0;
}

E.租车

一道最短路题目,涉及到图论了

#include<stdio.h>
#include<string.h>

int a[210][210];
int min(int a,int b){
    return (a<b?a:b);
}
void egde(int u,int v,int x){
	a[u][v]=x;
}
int main()
{
	int n;
	scanf("%d",&n);
	memset(a,0x3f,sizeof(a));
	//从1开始建图,方便书写
	for(int i=1;i<=n;i++)
		for(int j=i;j<=n;j++){
			if(i==j)a[i][j]=0;
			else{
				int x;
                scanf("%d",&x);
				egde(i,j,x);
			}
		}
	
	//下面是floyd模板 是一种最短路算法
	for(int k=1;k<=n;k++)//floyd
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++){
				// 就是从 i 到 j 的过程中,能不能借助第三点 k 使得距离更小
				a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
			}
	printf("%d",a[1][n]);
	return 0;
}

F.神秘的二进制Ⅱ

和上一次神秘的二进制相比将^(按位与)换成了|(逻辑或),逻辑或的运算是二进制位下,有1就为1,那么将所有数都进行逻辑或即可得到最大值

#include<stdio.h>
void solve()
{
    int n;
    scanf("%d", &n);
    int a;
    scanf("%d", &a);
    int sum = a;
    for(int i = 2; i <= n; i++){
        scanf("%d", &a);
        sum = sum | a;
    }
    printf("%d", sum);
}
int main(){
    int t = 1;
//     cin >> t;
    while(t--)solve();
    return 0;
}

G.神秘序列

该题需要开long long
请添加图片描述

通过序列 [1,1,2,4,8] 我们发现第二项开始,后一项等于前一项的两倍。

还是通过序列 [1,1,2,4,8] 我们发现除了第一,二个数,每个数都是偶数

题目要我们求包含x的序列最后一个数的最小可能值,我们可以考虑寻找x作为最后元素时的序列最长长度t,若该长度大于n,x即为我们所求,否则结果为x * pow(2,n-t)。

同时第一,二个数可以为奇数所以一开始就可以提供t=2的长度,我们寻找第一个奇数,一开始t为2。

int y = x;
int t = 2;
while(y/2==0){
    y/2;
    t++;
}

AC代码

#include<stdio.h>
void solve(){
    long n, x;
    scanf("%d %d",&n,&x);
    long long t = 2, y = x;
    while(y%2==0){
        t++;
        y/=2;
    }
    if(t>=n)
        printf("%lld\n",x);
    else
        printf("%lld\n",x*(long long)pow(2, n - t));
}

int main()
{
    long long t = 1;
    scanf("%d",&t);
    while(t--)
        solve();
    return 0;
}

其他解(1)

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=25;
int s[N]={};
void cheak()
{
    s[1]=1,s[2]=1;
    for(int i=3;i<25;i++)
    {
        s[i]=2*s[i-1];
    }
}
void solve()
{
    int n,x;
    cin>>n>>x;
    for(int i=n;i>=1;i--)
    {
        if(x%s[i]==0)
        {
            cout<<s[n]*x/s[i]<<endl;
            return;
        }
    }
}
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    cheak();
    while(t--)
    {
        solve();
    }
    return 0;
}

其他解(2)

#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve()
{
    int n,x;
    cin>>n>>x;
    for(int i=n;i>=1;i--)
    {
        if(x%(int)pow(2,i-2)==0)
        {
            cout<<(int)pow(2,n-2)*x/(int)pow(2,i-2)<<endl;
            return;
        }
    }
}
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}


H.古籍修复

//这个可能比较难,用C语言存字符串的话会比较麻烦,可以用C++的string
#include <iostream>
#include <string>
#include <algorithm> 
using namespace std;

string get_(string str) {
	//如果字符串为空就返回空
	if (str.empty()) {
		return ""; 
	}
	//截取字符串第一个,res是答案字符串的意思
	string res = str.substr(0, 1);
	//str.size() 是获取字符串长度的意思
	for (int i = 0; i < str.size(); i++) {
		int l = i, r = i;//定义左右边界
		//开始往两边放大,这是奇数的,因为起始位置相同,如果要移动那么l和r就会一起动,所以结果一定为奇数
		while (l >= 0 && r < str.size() && str[l] == str[r]) {
			int h = r - l + 1;//计算长度
			if (h > res.size()) {//比长度
				res = str.substr(l, h);
			} 
			else if (h == res.size()) {
				string s = str.substr(l, h);//截取答案字符串
				if (s < res) {//注意 string 可以直接用">","<","=="来比字典序的
					res = s;
				}
			}
			//两个同时移动
			l--;
			r++;
		}
		
		//现在是偶数,道理同上
		l = i;
		r = i + 1;
		while (l >= 0 && r < str.size() && str[l] == str[r]) {
			int h = r - l + 1;
			if (h > res.size()) {
				res = str.substr(l, h);
			} else if (h == res.size()) {
				string s = str.substr(l, h);
				if (s < res) {
					res = s;
				}
			}
			l--;
			r++;
		}
	}
	return res;
}

int main() {
	string str;//字符串
	cin>>str;//读入 这里的cin相当于scanf
	cout <<get_(str) << '\n'; //输出 这里的cout相当于printf
	return 0;
}

I.数之王国

J.找规律??

根据数组可以发现,上面是奇数,下面是质数。

题目要求第n个数的小数形式,第n个奇数为2*n-1。

我们需要求第n个质数.

首先我们需要判断质数,这里给出试除法。

int isPrime(int x){
    if(x==1)
        return 0;
	if(x==2)
		return 1;
    //遍历到 √x 而非 x-1
    //是因为若 x 有大于 √x 的因数
    //必然对应一个小于 √x 的因数
    //能减少循环次数,提高效率。
	for(int i = 2; i * i <= x; i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}

然后我们求第n个质数

int n;
cin >> n;
int f = 0;
int sum = 2;
for(int i = 1;; i++) {
	if(isPrime(i))
        f++;
    if(f==n){
        sum = i;
        break;
    }
}

第n个质数即为sum.

但是题目有t个(1 ≤ t ≤ 1e6)测试用例。

如果刚好题目有1000000个测试用例,每一次我们都重新从第一个质数判断到第n个质数,而n又都是第100000个,一定会超时。

我们发现我们每次求第n个质数时,前n-1个质数其实也被我们找出来了,所以我们想到可以用数组将这n个质数都存下来。

int a[100000+10];
for(int i = 2;f<=1e5; i++) {
    if(isPrime(i)){
        a[f++]=i;
    }
}

至此我们可以快速找出第n个数即为(n*2-1)/a[n];

AC代码

#include <stdio.h>
// int a[1299709+10];
int a[100000+10];
int f = 1;

int isPrime(int x){
    if(x==1)
        return 0;
	if(x==2)
		return 1;
    //遍历到 √x 而非 x-1
    //是因为若 x 有大于 √x 的因数
    //必然对应一个小于 √x 的因数
    //能减少循环次数,提高效率。
	for(int i = 2; i * i <= x; i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}

void solve()
{
	int n;
    scanf("%d",&n);
	printf("%.6lf\n",(double)(n * 2.0 - 1) / (a[n]) * 1.0);
// 	printf("%d",a[100000]);//1299709
}

int main()
{
	for(int i = 2;f<=1e5; i++) {
		if(isPrime(i)){
			a[f++]=i;
		}
	}
	int t = 1;
    scanf("%d",&t);
	while(t--) solve();
	return 0;
}

K.匹配

这道匹配,可能引起歧义了,就是给定一串字符串,字符串中有括号有其它字符
我们只需要判断括号是否匹配就好了
也就是说我们需要忽略除括号以外的字符
这道题用栈来写会简单一些,当然也可以用C语言的char字符串来写,如果要用char字符串来写的话,就类似于栈嘛
栈是一种先进后出的数据结构,大家可以把它想象成弹夹压子弹(先压进去的子弹不是后面才射出来吗)

#include <iostream>
#include <stack>
#include <string>
using namespace std;

//判断是不是左半边括号
bool z(char s) { return s == '(' || s == '{' || s == '['; }
//判断是不是右半边括号
bool y(char s) { return s == ')' || s == '}' || s == ']'; }
//判断能不能匹配
bool d(char l, char r) {
	return (l == '(' && r == ')') || (l == '{' && r == '}') || (l == '[' && r == ']');
}

bool is(const string& s) {
	stack<char> st;
	for (int i=0;i<s.size();i++) {
		char ch=s[i];
		if (z(ch)) {//如果是左括号就入栈
			st.push(ch);//这个是入栈的函数
		} else if (y(ch)) {//如果是右括号
			//empty()是检查栈是否为空的函数,如果为空,不就是只有右括号嘛
			//top()是返回栈顶的
			//pop()是弹出栈顶的元素
			//判断是否匹配
			if (st.empty()) return false;//先判空
			char c = st.top();
			st.pop();//再取顶并弹出
			if (!d(c, ch)) return false;//不匹配直接失败
		}
	}
	return st.empty();
}

int main() {
	string str;
	cin >> str;//读入一个字符串
	
	//这里是判断是否匹配
	if (is(str)) {
		cout << "Yes" << endl;
	} else {
		cout << "No" << endl;
	}
	return 0;
}

L.折得玫瑰花一朵

其实就是dfs

#include <stdio.h>
#include <stdbool.h>

bool f[21][21];//记录是否有路径相连
int a[21];//记录玫瑰数
int path[21], ans[21], cnt; //path记录路径,ans记录答案,cnt记录走了多少个点
bool b[21];//记录该点是否走过
int n;
int maxx;//记录挖的最大玫瑰数

// 检查是否还能继续往下挖
bool chck(int x) {
	for (int i = 1; i <= n; i++) {
		if (f[x][i] && !b[i]) return false;
	}
	return true;
}

//x记录现在位置,stp记录走了几个点,sum记录挖的玫瑰数
void dfs(int x, int stp, int sum) {
	if (chck(x)) {
		if (maxx < sum) {//更新最大值和路径
			maxx = sum;
			cnt = stp;
			for (int i = 1; i <= stp; i++)
				ans[i] = path[i];
		}
		return;
	}
	//寻找下一个能去的地方
	for (int i = 1; i <= n; i++) {
		if (f[x][i] && !b[i]) {
			b[i] = true;//标记走过
			path[stp + 1] = i;//记录路径
			dfs(i, stp + 1, sum + a[i]);
			b[i] = false;//回溯
		}
	}
}

int main() {
	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++) {
			int t;
			scanf("%d", &t);
			f[i][j] = (t != 0); //这里是单向边,仅读上三角f[i][j]
		}
	}
	
	maxx = 0;
	cnt = 0;
	
	for (int i = 1; i <= n; i++) {
		b[i] = true;
		path[1] = i;//记录起点
		dfs(i, 1, a[i]);
		b[i] = false;
	}
	
	for (int i = 1; i <= cnt; i++)
		printf("%d ", ans[i]);
	printf("\n%d", maxx);
	return 0;
}

第八届御网杯线下赛Pwn方向题解 【代码】第八届御网杯线下赛Pwn方向题解。 阅读详情

相关推荐

CSP-S 2025第一题社团招新:贪心算法与动态规划解题攻略

贪心算法和动态规划是解决资源分配问题的核心方法,贪心通过局部最优选择逼近全局最优,动态规划则通过状态转移处理复杂约束。在社团招新等场景中,这些算法能高效优化匹配和决策,提升代码性能。CSP-S等编程竞赛常考察此类问题,要求选手根据数据范围选择合适策略。本文以2025年CSP-S第一题为例,深入解析贪心与DP的应用,帮助读者掌握解题技巧。

weixin_33393017的博客 348

2023厦门大学人工智能夏令营机试

机试考题:

m0_56711618的博客 2786

2020同济大学电子与信息工程学院计算机系夏令营机试题目【含题解、注释】

无

ChenXiaoshui_的博客 2739

【hdu 7548】SunBian

那么B此时需要进行的操作就是取中间的笋(若为奇数取中间一个,反之取中间两个),将整个链分成两部分,然后镜像对手的操作,即可保证必胜。此时若A取其中的某一个或者某两个连续的节点,B可以在另一条链上镜像对手的操作,如图(红色代表A的操作,绿色代表B的操作)如果A第一步选了两个节点,剩下一条长度为6的链,则B可以选择第3、4节点,让原图变成两条长度为2的链,显然仍然是B胜。此时剩余7个节点,B可以取第四个节点让整个图形变成两条相同的链,如图。2.当k=1时,n为奇数A胜,否则B胜。1.当n=k时A必胜。

sgss222的博客 594

2017World Final 签到题

2017 World Final落下了帷幕,虽然没有机会去现场,但一边看直播,一边场外做题还是 蛮有感觉的,水了两道签到题,感觉挺好。那就让我们来看一下这两道签到题吧 I.Secret Chamber at Mount Rushmore By now you have probably heard that there is a spectacular stone sculptur...

Owen_Q的博客 2568

海思Hi3559A/CV100 DDR4参数配置经验分享

海思Hi3559A/CV100 DDR4参数配置方法 Hi3559AV100 DDR4 驱动配置说明 1.1 Hi3559AV100 DDR4 CLK/AC 驱动配置方法 寄存器地址 DDR PHY0:0x1206d0bc DDR PHY1:0x1206f0bc 寄存器描述 − Bit[5:3]:CLK 驱动 − Bit[14:12]:2T 驱动 − Bit[20:18]:1T 驱动 驱动大小定义 − 000:Disable − 001:240ohm − 010: 120ohm − 011:80ohm −

WeChat_zhanggong345的博客 2879

hdu5879

这个题吧,怎么说呢?一开始没读懂,这是个签到,他那个输入是1M我以为总共文件是1M没想到是我太年轻,其实应该用字符串读入,然后就是极大的时候比如1e6以上就是和1e6一样了,然后就可以了#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std;const int N = 1e6

就是想多赚点币子 586

uniapp开发AndroidAPP集成支付宝支付及问题处理(商家订单参数异常等),集成微信小程序支付及问题处理(运行真机调试白屏)

2、选择支付宝支付,调用支付接口唤起支付宝支付。

qq_16785561的博客 3486

第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 签到题11题

目录 题号 标题 已通过代码 通过率 我的状态 A 大学期末现状 点击查看 3243/3868 未通过 (水题) B G1024 点击查看 2855/6133 未通过(水题) C NEUQ 点击查看 1843/6625 未通过(水题) D 小G的任务 点击查看 2531/3531 未通过(水题) E nn与游戏 点击查看 602/1642 未通过(BFS找最短路)(忘记去掉输出的调试值调了好久) F 第二大数 点击查看 614/2276 未通过 (暴力枚举区间,维护最大值和次大值,记得开longlong)

小哈里的博客 4833

西门子博图编程:使用S7-1500冗余PLC 建立ModbusTCP通信

文章目录1.1 网络结构1.2 系统 IP 介绍1.3 Modbus TCP 通讯编程1.3.1 CPU 做服务器 1.1 网络结构 以 CPU151 7H 为例, 网络结构示意如下图所示: CPU 1517H 冗余 PLC 有 PROFINET X1 接口和 X2 接口, Modbus TCP 通讯可以将设备(例如 Standard PLC)通过交换机接入到任何网络接口中。如果接入 X1 接口,需要通过交换机接入到 MRP 环网中,但是并不需要支持 H-sync 转发。如果接入 X2 接口,只需要使

2万+

集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“

项目场景: 设想是将Calibre集成到cadence virtuoso中,但网上的解决办法尝试过在本机上实验都有点问题,因此想记录下来我的解决办法仅供参考。 问题描述: 安装好cadence, calibre之后打开virtuoso,CIW窗口显示 *Error* load: can't access file - "/opt/eda/Mentor/lib/calibre.skl" 问题是出在calibre.skl的加载路径出错,尝试网上的在工程目录下修改.cdsinit文件,添加calibre安装

weixin_52714276的博客 1万+

Aegis Recruit 2025 Web方向题解

这里记录一下泥电Aegis工作室2025年招新题中Web方向的题解。

网安小萌新一枚 961

【速通RAG实战:索引】4.RAG文档解析技术

通过本文技术方案,可构建高精准、高效率的文档解析流水线,为 RAG 应用提供坚实的知识底座。核心在于**格式解析的鲁棒性**和**语义分块的准确性**,后续通过持续的性能优化和质量监控,逐步提升索引质量和检索效率。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1545

Aegis Recruit 2025 Crypto方向题解

记录泥电Aegis工作室2025年招新题中Crypto方向的题解。

网安小萌新一枚 418

Allegro层叠中的介电常数如何填写指导说明

在用Allegro进行PCB设计的时候,需要在cross-section中设置好每个层的信息,包括层命名,每层的厚度等等信息。但是对于有仿真需求或者等长设计需要使用ps作为延时单位的设计的时候,需要额外在层叠中填写介电常数的值,如下图。按照经验值填写为2.8,因为外层和平面层不会被树脂填充,铜皮层还是完整的铜皮,如下图。对应层叠将每层介质的介电常数的数值填入到PCB中去,油墨的介电常数填4。层叠中只给出了每个介质的介电常数,铜皮的介电常数却没有给出。所以正确填写介电常数的结果如下图。需要按照下面的规则来。

weixin_54787054的博客 1392

【Unity工具篇】| 使用YooAsset接入自己的游戏项目,实现完整热更新流程

前面文章介绍了YooAsset的原理和接入官方示例文档的文章介绍,本文使用YooAsset接入自己的游戏项目做示例。 【Unity工具篇】| 资源管理插件YooAsset,原理及相关配置 【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目 具体接入方法有很多种,本文会参照官方示例 Space Shooter 太空战机DEMO 用到的方式接入自己的游戏项目。

努力前行,总会成为自己心中的那道光 1万+

WEB-2025 SWPU-NSSCTF部分题解

书接上文。五、finalrce在开始分析题目之前我先附上一段我之前学rce记的一些笔记(如果有问题可以在评论区纠正)。空格绕过:#常见的绕过符号有:$IFS$9、{$IFS}、%09(php环境下)、重定向符反引号绕过:` `cat的反向操作:tac1、无字母数字RCE无字母数字RCE是指在不使用任何字母(a-zA-Z)和数字(0-9)的情况下实现代码执行的技巧。这种技术在以下场景特别有用:·过滤了所有字母和数字的CTF题目·严格的WAF规则过滤了常规payload。

2401_87876265的博客 1967

C++ Qt6 QtQuick/QML入门进阶与项目实战视频教程

C++ Qt这些年在PC客户端、嵌入式、汽车座舱仪表等领域应用很广泛,例如剪映专业版、微信4.0、亿图脑图、Steam、美图秀秀、腾讯会议、钉钉(部分模块)等都是使用C++ QWidget/QML开发。特别是QML这种声明式UI开发更加快捷,QML的界面开发效率相对于QWidget更快速,界面效果更好,QtQuick/QML在Qt6版本也逐渐完善了,使用QML进行客户端开发是个不错的选择。

琅嬛福地 4488

第三次ACM校队周赛考核题

Joker想要买三张牌,但是三张牌太少了,老板不卖,除非Joker算出老板给出的数学题。现在老板给出t组数据,每一组数据有三个数a,b,c,要计算出每一组数据三个数相加是否是3的倍数,是的话就输出”Yes”,否则就输出”No”.

755

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

暨南大学计算机研究生复试机试历年真题

暨南大学计算机研究生复试机试历年真题

u014339447的博客 3020

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

第十八届西南科技大学ACM程序设计竞赛(同步赛)签到题 6题

文章目录B 为欢几何F 青山隐隐,败叶萧萧G 几番烟雾,只有花难护H 岸风翻夕浪,舟雪洒寒灯L 夜暗方显万颗星,灯明始见一缕尘M 劝君终日酩酊醉,酒不到刘伶坟上土 B 为欢几何 链接:https://ac.nowcoder.com/acm/contest/33540/B 来源:牛客网 题目描述 欢迎各位教练,老师,同学们来到西南科技大学第十八届校赛。在这短暂的五个小时,尽情享受AC , AK的快乐。 藏头诗的本意一般藏在每个诗句的首字,将它们按顺序连起来读会有意想不到的效果。 《水浒传》第六十一回中梁山好汉

小哈里的博客 1963

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

BUPT2017计院机试Java题解

题目搜集于各位前辈,侵删。 第一题 import java.util.Scanner; //签到题,直接用pow(x,1.0/3.0)好像有问题,要是卡时间就用这个 public class c1701 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = ...

qq_39419821的博客 160

关于一些初级ACM竞赛题目的分析和题解(五)。

关于一些初级ACM竞赛题目的分析和题解(五)。 拓展了一些字母变换的题目,看题:   131A. cAPS lOCK time limit per test 0.5 second memory limit per test 256 megabytes input standard input output standa

monster_ayb的博客 1116

2012 ACM-ICPC 杭州站解题报告(4道签到题)

hdu 4461 The Power of Xiangqi         题意:

A Cube Master 1153

cf签到题

题目大意 就是给你一个n和一个k 你可以做两种操作:一是减一 二是除以k 让输出最小操作步骤 解题思路 一开始觉得签到题 就直接遍历取模减一的 然后第二个样例就超时了。 偷看了大佬的代码 基本思路是:先判断是否可以除尽k 如果可以 步骤加一 n=n/k; 如果不可以 说明肯定要进行减一的步骤 然后想啊 n%k的值不就是剩下的要减一的那些个数吗 所以步骤数加上 n%k 然后n变成 n-n...

weixin_43819762的博客 340
上一篇: I Bingo 3
下一篇: 第三次招新(2025)题解
译微
博客等级 码龄3年 8粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值