复试打卡day30

1.单词

2.翻译

化学习是一种通过与环境交互来学习最优策略的机器学习方法。在强化学习框架中,一个智能体通过观察环境状态并采取相应的行动,从而获得奖励或惩罚。智能体的目标是通过不断的探索和学习,找到能够最大化长期累计奖励的策略。与监督学习不同,强化学习通常不依赖于大量标注数据,而是通过试错的方式不断改进决策能力。强化学习已经在许多复杂任务中取得了成功,例如机器人控制、自动驾驶以及游戏人工智能。在著名的围棋程序AlphaGo中,强化学习与深度神经网络相结合,使得计算机能够达到甚至超过人类顶尖棋手的水平。然而,在现实应用中,强化学习仍然面临样本效率低和训练成本高等问题。

3.代码

114.成绩统计

#include<bits/stdc++.h>

using namespace std;

int main()

{

vector<string> name(5);

vector<int> shuxue(5);

vector<int> zhengzhi(5);

for(int i=0;i<5;i++)

{

cin>>namei;

cin>>shuxuei;

cin>>zhengzhii;

}

for(int i=0;i<5;i++)

{

cout<<namei<<" ";

int avg=(shuxuei+zhengzhii)/2;

cout<<avg<<endl;

}

int max_grade=0;

int idx=0;

for(int i=0;i<5;i++)

{

if(shuxuei>max_grade)

{

max_grade=shuxuei;

idx=i;

}

}

cout<<nameidx<<" "<<shuxueidx<<" "<<zhengzhiidx;

return 0;

}

暴力解即可

115.摩托车

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,m;

while(cin>>n>>m)

{

vector<string> require_name(n);

for(int i=0;i<n;i++)

cin>>require_namei;

vector<string> store_name(m);

vector<string> color(m);

vector<string> size(m);

for(int i=0;i<m;i++)

{

cin>>store_namei;

cin>>colori;

cin>>sizei;

}

bool ok=false;

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

{

if(require_namei==store_namej)

{

cout<<store_namej<<" "<<colorj<<" "<<sizej<<endl;

ok=true;

}

}

}

if(!ok)

cout<<"Not found!"<<endl;

}

return 0;

}

暴力匹配

116扑克牌

#include<bits/stdc++.h>

using namespace std;

// 全局数组保留你的原始定义

vector<string> row1(13);

vector<string> row2(13);

vector<string> row3(13);

vector<string> row4(13);

// 新增:定义点数权重(解决T/9/8...2的比较问题)

int getRankValue(char c) {

switch(c) {

case 'A': return 14;

case 'K': return 13;

case 'Q': return 12;

case 'J': return 11;

case 'T': return 10;

default: return c - '0'; // 9/8...2转数字

}

}

// 新增:定义花色权重

int getSuitValue(char c) {

switch(c) {

case 'S': return 4; // 黑桃>S

case 'H': return 3; // 红心>H

case 'D': return 2; // 方块>D

case 'C': return 1; // 草花>C

default: return 0;

}

}

// 修复compare1:用索引比较,符合题目排序规则

bool compare1(int i,int j)

{

string a=row1i;

string b=row1j;

// 先比点数(第二位)

int rankA = getRankValue(a1);

int rankB = getRankValue(b1);

if(rankA != rankB)

return rankA > rankB; // 点数降序

// 点数相同,比花色(第一位)

int suitA = getSuitValue(a0);

int suitB = getSuitValue(b0);

return suitA > suitB; // 花色降序

}

// 修复compare2:逻辑和compare1一致,针对row2

bool compare2(int i,int j)

{

string a=row2i;

string b=row2j;

int rankA = getRankValue(a1);

int rankB = getRankValue(b1);

if(rankA != rankB)

return rankA > rankB;

int suitA = getSuitValue(a0);

int suitB = getSuitValue(b0);

return suitA > suitB;

}

// 修复compare3:针对row3

bool compare3(int i,int j)

{

string a=row3i;

string b=row3j;

int rankA = getRankValue(a1);

int rankB = getRankValue(b1);

if(rankA != rankB)

return rankA > rankB;

int suitA = getSuitValue(a0);

int suitB = getSuitValue(b0);

return suitA > suitB;

}

// 修复compare4:针对row4

bool compare4(int i,int j)

{

string a=row4i;

string b=row4j;

int rankA = getRankValue(a1);

int rankB = getRankValue(b1);

if(rankA != rankB)

return rankA > rankB;

int suitA = getSuitValue(a0);

int suitB = getSuitValue(b0);

return suitA > suitB;

}

int main()

{

int n;

cin>>n;

for(int i=0;i<n;i++)

{

// 读取数据:保留你的原始读取逻辑

for(int j=0;j<13;j++)

cin>>row1j;

for(int j=0;j<13;j++)

cin>>row2j;

for(int j=0;j<13;j++)

cin>>row3j;

for(int j=0;j<13;j++)

cin>>row4j;

// 关键修复:索引排序(你的原始错误是直接排string,应该排索引)

vector<int> idx(13); // 构造0-12的索引数组

for(int k=0;k<13;k++) idxk = k;

// 对row1:先排索引,再按索引重新整理row1

sort(idx.begin(), idx.end(), compare1);

vector<string> temp1(13);

for(int k=0;k<13;k++) temp1k = row1idx\[k];

row1 = temp1;

// 对row2:同理

sort(idx.begin(), idx.end(), compare2);

vector<string> temp2(13);

for(int k=0;k<13;k++) temp2k = row2idx\[k];

row2 = temp2;

// 对row3:同理

sort(idx.begin(), idx.end(), compare3);

vector<string> temp3(13);

for(int k=0;k<13;k++) temp3k = row3idx\[k];

row3 = temp3;

// 对row4:同理

sort(idx.begin(), idx.end(), compare4);

vector<string> temp4(13);

for(int k=0;k<13;k++) temp4k = row4idx\[k];

row4 = temp4;

// 输出row1:保留你的原始输出逻辑

for(int j=0;j<13;j++)

{

if(j>=1)

cout<<" "<<row1j;

else

cout<<row1j;

}

cout<<endl;

// 输出row2

for(int j=0;j<13;j++)

{

if(j>=1)

cout<<" "<<row2j;

else

cout<<row2j;

}

cout<<endl;

// 输出row3

for(int j=0;j<13;j++)

{

if(j>=1)

cout<<" "<<row3j;

else

cout<<row3j;

}

cout<<endl;

// 输出row4

for(int j=0;j<13;j++)

{

if(j>=1)

cout<<" "<<row4j;

else

cout<<row4j;

}

// 修复输出格式:只有非最后一组才输出空行

if(i != n-1)

cout<<endl<<endl;

else

cout<<endl;

// 移除clear():避免容器为空导致后续访问崩溃,直接覆盖即可

}

return 0;

}

每行分开比较,无法直接比较的,转为数字比较,记得比较的是索引

相关推荐
devilnumber1 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
双指针、滑动窗口、前缀和、二分查找 算法
算法
顾北顾3 小时前
多头注意力机制
人工智能·深度学习·算法
H178535090963 小时前
SolidWorks_基于草图的实体特征20_特征错误排查
算法·3d建模·solidworks
hujinyuan201604 小时前
2025年12月中国电子学会青少年机器人技术等级考试试卷(二级) 真题+答案
人工智能·算法·机器人
bIo7lyA8v4 小时前
算法复杂度评估的实验统计方法与可视化的技术8
算法
李老师讲编程5 小时前
中国电子学会图形化2020.12月Scratch三级考级题
算法·scratch·信息学奥赛·图形化编程·scratch素材
退休倒计时5 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript
旖-旎5 小时前
FloodFill(图像渲染)(1)
c++·算法·深度优先·力扣