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

}

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

相关推荐
郝学胜-神的一滴2 小时前
贪心策略实战Leetcode 860题:柠檬水找零问题的优雅解法
数据结构·c++·算法·leetcode·职场和发展
小资同学2 小时前
考研机试贪心算法(二)
考研·算法·贪心算法
小资同学2 小时前
考研机试之递归与贪心算法
算法·华为·贪心算法
我能坚持多久2 小时前
链式二叉树OJ问题详解
算法
2401_844221322 小时前
使用PictureBox实现图片缩放与显示的深入探讨
jvm·数据库·python·算法
Java面试题总结2 小时前
Go图像处理基础: image包深度指南
图像处理·算法·golang
C羊驼2 小时前
C 语言:哥德巴赫猜想
c语言·开发语言·人工智能·经验分享·笔记·算法·课程设计
田梓燊2 小时前
算法题学习题单
学习·算法