当前位置: 首页 > news >正文

天津大学智算2026预推免机试第二批题目及代码c++

平时刷题感觉还行,但是一到考试状态就不行。建议是平时多练,要追求做题速度和质量,因为真到了双机位、限时的考试场景,可能发挥只有平时的2/3。痛定思痛,晚上复盘了一把。


两个小时,五道题。类似蓝桥杯,需要自己写输入输出。代码在自己电脑的IDE写,然后复制粘贴到OJ平台上去测试,只会提示你样例是否通过,不会显示所有测试点的情况。我用的C++IDE是Dev C++。

犯的一些比较蠢的错误:=和==写错;变量命名为s1 s2结果写混了;


1.整数的权

#include<bits/stdc++.h>
using namespace std;int main()
{int n;cin>>n;while(n--){string s;cin>>s;long long ans=0;for(auto ss:s){long long a=(long long)(ss-'0');ans+=a*a;}cout<<ans<<endl;}return 0;} 

2.生日排序

#include<bits/stdc++.h>
using namespace std;bool cmp(vector<int> v1, vector<int> v2){if(v1[0]!=v2[0])return v1[0]<v2[0];else if(v1[1]!=v2[1]) return v1[1]<v2[1];else if(v1[2]!=v2[2]) return v1[2]<v2[2];else return v1[3]<v2[3];	
}int main()
{int n;cin>>n;vector<vector<int>> v_num;vector<string> v_str;while(n--){string s;cin>>s;v_str.push_back(s);string sy,sm,sd;int y,m,d;int i=0,j=0;while(s[j]!='.')j++;sy=s.substr(i, j-i);i=++j;while(s[j]!='.')j++;sm=s.substr(i, j-i);i=j+1;sd=s.substr(i,s.size()-i);y=stoi(sy);m=stoi(sm);d=stoi(sd);
//		cout<<'!'<<y<<m<<d;vector<int> temp{y+m+d, y, m, d, v_num.size()};v_num.push_back(temp);}sort(v_num.begin(), v_num.end(), cmp);for(auto vv:v_num){cout<<v_str[vv[4]]<<endl;
//		cout<<'!'<<vv[0]<<vv[1]<<vv[2]<<vv[3]<<vv[4];}return 0;	
}

3.圆的位置

#include<bits/stdc++.h>
using namespace std;
using ll=long long;int main(){int n;cin>>n;while(n--){ll x1,y1,r1,x2,y2,r2;cin>>x1>>y1>>r1>>x2>>y2>>r2;ll dist=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);ll sum_r=(r1+r2)*(r1+r2);ll min_r=(r1-r2)*(r1-r2);if(dist>sum_r){// 1. 相离:圆心距离 > 半径之和cout<<0<<endl;}else if(dist==sum_r || dist==min_r){// 2. 相切:圆心距离 = 半径之和 或 圆心距离 = |半径之差|cout<<1<<endl;}else if(dist<min_r){// 3. 包含:圆心距离 < |半径之差|cout<<3<<endl;}else{// 4. 相交cout<<2<<endl;}}return 0;
} 

4.节目安排

#include<bits/stdc++.h>
using namespace std;int main(){int p,t;cin>>p>>t;vector<int> times(p,0);for(int i=0;i<p;i++){cin>>times[i];}vector<int> dp(t+1, 0);for(auto time:times){for(int j=t;j>=time;j--){	dp[j]=max(dp[j], dp[j-time]+time);}}cout<<dp[t];return 0;
}

5.括号序列

下面的代码是ai写的,仍然有一些问题,仅供参考。

#include <bits/stdc++.h>
using namespace std;// 解决函数:将包含通配符的字符串转换为合法括号序列
string solve(string s) {int n = s.size();// dp[i][j]: 表示处理到前i个字符时,左括号比右括号多j个是否可能// 使用动态规划来跟踪所有可能的状态vector<vector<bool>> dp(n+1, vector<bool>(n+1, false));// path[i][j]: 表示在状态(i, j)下,能够形成的最小字典序字符串// 我们只记录最小字典序的路径,因为题目要求字典序最小vector<vector<string>> path(n+1, vector<string>(n+1, ""));// 初始化:处理0个字符时,左括号比右括号多0个是可能的,对应空字符串dp[0][0] = true;path[0][0] = "";// 动态规划处理每个字符for (int i = 0; i < n; i++) {for (int j = 0; j <= n; j++) {// 如果当前状态(i, j)不可达,跳过if (!dp[i][j]) continue;char current_char = s[i];  // 当前处理的字符// 选项1:将当前字符视为'('(当字符是'('或'*'时可选)// 因为'*'可以替换为'(',而'('本身就是左括号if (current_char == '(' || current_char == '*') {int new_balance = j + 1;  // 添加'('后,左括号比右括号多j+1个if (new_balance <= n) {   // 确保不会超出数组边界string new_path = path[i][j] + "(";// 如果新状态不可达,或者新路径字典序更小,则更新if (!dp[i+1][new_balance] || new_path < path[i+1][new_balance]) {dp[i+1][new_balance] = true;path[i+1][new_balance] = new_path;}}}// 选项2:将当前字符视为')'(当字符是')'或'*'时可选)// 注意:只有在当前左括号多于右括号(j > 0)时才能添加')'// 否则会出现非法序列(右括号多于左括号)if (current_char == ')' || current_char == '*') {if (j > 0) {  // 确保有足够的左括号来匹配这个右括号int new_balance = j - 1;  // 添加')'后,左括号比右括号多j-1个string new_path = path[i][j] + ")";// 如果新状态不可达,或者新路径字典序更小,则更新if (!dp[i+1][new_balance] || new_path < path[i+1][new_balance]) {dp[i+1][new_balance] = true;path[i+1][new_balance] = new_path;}}}// 选项3:删除当前字符(只有当字符是'*'时才可选)// 因为只有'*'可以被删除,'('和')'必须保留if (current_char == '*') {string new_path = path[i][j];  // 保持原路径不变(相当于删除'*')// 如果新状态不可达,或者新路径字典序更小,则更新// 注意:删除操作保持平衡状态j不变if (!dp[i+1][j] || new_path < path[i+1][j]) {dp[i+1][j] = true;path[i+1][j] = new_path;}}}}// 检查最终状态:处理完所有字符后,左括号和右括号数量必须相等(j=0)// 并且该状态必须是可达的if (dp[n][0]) {return path[n][0];  // 返回最小字典序的合法括号序列} else {return "No solution!";  // 无法形成合法括号序列}
}int main() {int T;cin >> T;  // 读取测试用例数量T// 处理每个测试用例while (T--) {string s;cin >> s;  // 读取包含通配符的字符串// 调用solve函数处理并输出结果cout << solve(s) << endl;}return 0;
}


文章转载自:

http://ygIySGxU.tkmct.cn
http://LCYk1faf.tkmct.cn
http://ctJnyH7V.tkmct.cn
http://urX4hwPS.tkmct.cn
http://dlXhQQmD.tkmct.cn
http://mT7tZd8p.tkmct.cn
http://miEtE38e.tkmct.cn
http://dhmNHLh9.tkmct.cn
http://QasdyZUs.tkmct.cn
http://jUrnFkaa.tkmct.cn
http://bcOYMyYE.tkmct.cn
http://zf0XuPRq.tkmct.cn
http://rCnKPdVu.tkmct.cn
http://s6hTrY2M.tkmct.cn
http://AE6eyL3W.tkmct.cn
http://W4AWZjFT.tkmct.cn
http://2LKnzatg.tkmct.cn
http://kLicoY0b.tkmct.cn
http://sLOn5UW6.tkmct.cn
http://E3H226ld.tkmct.cn
http://3b2uhuKQ.tkmct.cn
http://Q6SSFZ0w.tkmct.cn
http://JcU7lm1T.tkmct.cn
http://qL6JEBvd.tkmct.cn
http://ueBmSE1n.tkmct.cn
http://VlfdOrsH.tkmct.cn
http://PYhKYwZl.tkmct.cn
http://9Ab1cHaC.tkmct.cn
http://Hz87C7uj.tkmct.cn
http://uVgbnARI.tkmct.cn
http://www.dtcms.com/a/372928.html

相关文章:

  • 杰理烧录ERROR: Data error after erasing, address = 0x430000
  • Spring Cloud Alibaba快速入门02-Nacos(下)
  • DA-WSOL
  • FlutterActivity vs FlutterFragmentActivity:全面对比与最佳实践
  • 算法高频题
  • Aider AI Coding 项目 LLM 模型管理 深度分析
  • Spring事件监听机制(三)
  • 设计模式之单例模式大全---java实现
  • Separated collaborative learning
  • Microsoft Visual C++ 运行库安装教程(最新版完整指南 | DLL修复方案)
  • 【Linux】vim工具篇
  • 迁移学习:人工智能的智慧传承与革新之道
  • SQL面试题及详细答案150道(116-135) --- 高级查询与函数篇
  • LRU 缓存
  • Redis的Feed流实现方案
  • 5G专网、物联网专业技术知识
  • LaTeX TeX Live 安装与 CTAN 国内镜像配置(Windows / macOS / Linux 全流程)
  • 脑电数据预处理十六:自动化阈值检测原理与实践
  • 9月8日
  • Java全栈开发工程师的实战面试经历:从基础到微服务
  • 冰火岛 Tech 传:Apple Foundation Models 心法解密(上集)
  • 腾讯云 CLB (Cloud Load Balancer) 为例,详细讲解如何配置 Nginx 集群
  • 25.线程概念和控制(二)
  • VMware-三种网络模式原理
  • 【Java实战㉝】Spring Boot实战:从入门到自动配置的进阶之路
  • 【WRF-VPRM 预处理器第一期】完整安装(服务器)
  • 【Unity笔记】Unity 编辑器扩展:打造一个可切换 Config.assets 的顶部菜单插件
  • Visual Studio Code设置个性化背景教程
  • AI内容标识新规实施后,大厂AI用户协议有何变化?(二)百度系
  • 【大模型应用开发 5.LlamaIndex知识管理与信息检索】