复试打卡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;

}

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

相关推荐
aaaameliaaa6 分钟前
计算斐波那契数(递归、迭代)(1,1,2,3,5.....)
c语言·开发语言·笔记·算法·排序算法
Jerry12 分钟前
LeetCode 977. 有序数组的平方
算法
Turbo正则37 分钟前
群论学习入门 | 群论与李群的基本概念
人工智能·学习·算法·抽象代数
sugar__salt1 小时前
手撕字符串算法:反转、回文、验证回文 Ⅱ 完整拆解
javascript·算法·面试·职场和发展
To_OC1 小时前
从一行报错开始,把字符串反转、回文算法连带着包装类一起捋明白
javascript·算法·api
LCG米1 小时前
机器人控制系统与运动规划:从RRT算法到ROS move_base实战
算法·机器人
QiLinkOS1 小时前
第三视觉理解徐玉生与他的商业活动(26)
大数据·c++·人工智能·算法·开源协议
手写码匠1 小时前
手写 LLM 结构化输出引擎 —— 从 JSON Schema 约束到类型安全的数据提取
人工智能·深度学习·算法·aigc
zhiSiBuYu05171 小时前
重排序(Rerank)提升检索准确率实战指南
开发语言·python·算法
月疯2 小时前
华为手环的部分功能
算法