复试打卡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>>name[i];

cin>>shuxue[i];

cin>>zhengzhi[i];

}

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

{

cout<<name[i]<<" ";

int avg=(shuxue[i]+zhengzhi[i])/2;

cout<<avg<<endl;

}

int max_grade=0;

int idx=0;

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

{

if(shuxue[i]>max_grade)

{

max_grade=shuxue[i];

idx=i;

}

}

cout<<name[idx]<<" "<<shuxue[idx]<<" "<<zhengzhi[idx];

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_name[i];

vector<string> store_name(m);

vector<string> color(m);

vector<string> size(m);

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

{

cin>>store_name[i];

cin>>color[i];

cin>>size[i];

}

bool ok=false;

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

{

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

{

if(require_name[i]==store_name[j])

{

cout<<store_name[j]<<" "<<color[j]<<" "<<size[j]<<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=row1[i];

string b=row1[j];

// 先比点数(第二位)

int rankA = getRankValue(a[1]);

int rankB = getRankValue(b[1]);

if(rankA != rankB)

return rankA > rankB; // 点数降序

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

int suitA = getSuitValue(a[0]);

int suitB = getSuitValue(b[0]);

return suitA > suitB; // 花色降序

}

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

bool compare2(int i,int j)

{

string a=row2[i];

string b=row2[j];

int rankA = getRankValue(a[1]);

int rankB = getRankValue(b[1]);

if(rankA != rankB)

return rankA > rankB;

int suitA = getSuitValue(a[0]);

int suitB = getSuitValue(b[0]);

return suitA > suitB;

}

// 修复compare3:针对row3

bool compare3(int i,int j)

{

string a=row3[i];

string b=row3[j];

int rankA = getRankValue(a[1]);

int rankB = getRankValue(b[1]);

if(rankA != rankB)

return rankA > rankB;

int suitA = getSuitValue(a[0]);

int suitB = getSuitValue(b[0]);

return suitA > suitB;

}

// 修复compare4:针对row4

bool compare4(int i,int j)

{

string a=row4[i];

string b=row4[j];

int rankA = getRankValue(a[1]);

int rankB = getRankValue(b[1]);

if(rankA != rankB)

return rankA > rankB;

int suitA = getSuitValue(a[0]);

int suitB = getSuitValue(b[0]);

return suitA > suitB;

}

int main()

{

int n;

cin>>n;

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

{

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

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

cin>>row1[j];

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

cin>>row2[j];

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

cin>>row3[j];

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

cin>>row4[j];

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

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

for(int k=0;k<13;k++) idx[k] = k;

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

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

vector<string> temp1(13);

for(int k=0;k<13;k++) temp1[k] = row1[idx[k]];

row1 = temp1;

// 对row2:同理

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

vector<string> temp2(13);

for(int k=0;k<13;k++) temp2[k] = row2[idx[k]];

row2 = temp2;

// 对row3:同理

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

vector<string> temp3(13);

for(int k=0;k<13;k++) temp3[k] = row3[idx[k]];

row3 = temp3;

// 对row4:同理

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

vector<string> temp4(13);

for(int k=0;k<13;k++) temp4[k] = row4[idx[k]];

row4 = temp4;

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

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

{

if(j>=1)

cout<<" "<<row1[j];

else

cout<<row1[j];

}

cout<<endl;

// 输出row2

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

{

if(j>=1)

cout<<" "<<row2[j];

else

cout<<row2[j];

}

cout<<endl;

// 输出row3

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

{

if(j>=1)

cout<<" "<<row3[j];

else

cout<<row3[j];

}

cout<<endl;

// 输出row4

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

{

if(j>=1)

cout<<" "<<row4[j];

else

cout<<row4[j];

}

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

if(i != n-1)

cout<<endl<<endl;

else

cout<<endl;

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

}

return 0;

}

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

相关推荐
小O的算法实验室13 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
郭涤生14 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿14 小时前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz14 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能14 小时前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****14 小时前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能14 小时前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能15 小时前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数
CoderCodingNo15 小时前
【GESP】C++四、五级练习题 luogu-P1177 【模板】排序
数据结构·c++·算法
Proxy_ZZ015 小时前
从零实现LDPC比特翻转译码器:C语言实战与底层逻辑解析
c语言·算法