2.24完成129、134、135

题目:

现在,有许多给小孩子玩的数字游戏,这些游戏玩起来简单,但要创造一个就不是那么容易的了。 在这,我们将介绍一种有趣的游戏。

你将会得到N个正整数,你可以将一个整数接在另一个整数之后以制造一个更大的整数。 例如,这有4个数字123, 124, 56, 90,他们可以制造下列整数─ 1231245690, 1241235690, 5612312490, 9012312456, 9056124123....等,总共可以组合出24(4!)种数字。 但是,9056124123是最大的那一个。

你可能会想这是个简单的事情,但对刚有数字概念小孩来说,这会是个简单的任务吗?

要点总结:

数字的字符串只要没有前缀0并且长度相同,可以直接用>或者<进行比较,本质是字典序比较,和数字大小一致。

这里先读入所有数字string,然后定义一个新的比较方式,两个字符串拼接后放在前面结果大的排前面,按这个顺序排完之后拼接输出即为最大值。

另外,特殊处理一下全是000000的情况,只输出一个

代码:

#include<bits/stdc++.h>

using namespace std;

bool compa(string x,string y){

return x+y>y+x;

}

int main(){

int n;

while(cin>>n){

if(n==0) continue;

vector<string> arr;

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

string a;

cin>>a;

arr.push_back(a);

}

sort(arr.begin(),arr.end(),compa);

string res;

for(string m : arr){

res+=m;

}

if(res0=='0'){

cout<<"0"<<endl;

}else{

cout<<res<<endl;

}

}

return 0;

}

题目:

3000米长跑时,围观党们兴高采烈地预测着最后的排名。因为他们来自不同的班,对所有运动员不一定都了解,于是他们分别对自己了解的一些运动员的实力作出了评估,即对部分运动员做了相对排名的预测,并且告诉了可怜留守的班长。因为无聊,于是他们就组团去打Dota去了。比赛结束后他们向班长询问最后的排名,但班长不记得了,只记得他们中哪些人的预测是正确的,哪些人的预测是错误的。他们想知道比赛的排名可能是什么。  

要点总结:

我的思路是使用next_permutation枚举所有的可能排名情况,然后对每一个预测的排名判断是不是可能排名的合法情况(如果预测为正确必须为其子序列,如果预测为错误必须不为其子序列),遍历完所有预测即可判断该枚举情况是不是合理,合理就塞入vector里面。但是这里暴力枚举拿不全分数,有的用例会超时,之后可以思考看看是否有简单方法。

代码:

#include<bits/stdc++.h>

using namespace std;

struct pred{

vector<int> seq;

bool iscorr;

};

bool isseq(vector<int> xulie,vector<int> yuce){

int j=0;

for(int i=0;i<xulie.size()&&j<yuce.size();i++){

if(xuliei==yucej){

j++;

}

}

return j==yuce.size();

}

int main(){

int n,m;

cin>>n>>m;

vector<int> xulie(n);

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

xuliei=i;

}

vector<pred> pre(m);

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

int a,flag;

cin>>a;

vector<int> seq(a);

for(int j=0;j<a;j++){

cin>>seqj;

}

cin>>flag;

pred x;

x.seq=seq;

x.iscorr=(flag==1);

prei=x;

}

vector<vector<int>> valid;

do{

bool ok=true;

for(pred s : pre){

bool sub=isseq(xulie,s.seq);

if(s.iscorr){

if(!sub){

ok=false;

break;

}

}else{

if(sub){

ok=false;

break;

}

}

}

if(ok){

valid.push_back(xulie);

}

}while(next_permutation(xulie.begin(),xulie.end()));

cout<<valid.size()<<endl;

for(vector<int> y : valid){

for(int k=0;k<y.size();k++){

cout<<yk<<" ";

}

cout<<endl;

}

return 0;

}

题目:

有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。

  每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。

  给出所有芯片的测试结果,问哪些芯片是好芯片。

要点总结:

这里代码没难度,关键在于思想。看到好芯片比坏芯片多要学会分析。如果是好芯片,则一定得到预测为1的超过总芯片数一半(因为坏的来检测它会五五分,而好的来检测它全是1),所以对每一列,去累加所有行然后判断即可。

代码:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n;

cin>>n;

int arrnn;

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

for(int j=0;j<n;j++){

cin>>arrij;

}

}

vector<int> good;

for(int j=0;j<n;j++){

int count=0;

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

if(arrij==1){

count++;

}

}

if(count>n/2){

good.push_back(j+1);

}

}

for(int m=0;m<good.size();m++){

cout<<goodm<<" ";

}

return 0;

}

英语翻译:

智能手机配备了内置的语音识别系统,这使用户能使用语音指令提问并控制设备。智能手机也包含GPS功能,所以智能手机的app能够提供基于定位的服务,例如导航地图或者提供附近餐厅的清单。

智能手机是由基础的手机和PDA发展而来的,PDA(即个人数字助力)是被用作电子日程本、计算器、笔记本的手持设备。现代智能手机有类似的一套应用程序,但它们也有大量的移动端app可以帮助用户计算小费、播放其喜欢的音乐、提供游戏以供娱乐。

智能手机的操作系统和平板电脑的类似。iphone和ipad就都是使用IOS系统。智能手机上的win10移动系统可以提供类似windows笔记本的用户体验。三星平板使用的安卓系统也用于三星的galaxy系列以及摩托罗拉的droid系列智能手机

PDA个人数字助理

electronic appointment book 电子日程本

相关推荐
旖旎夜光15 分钟前
LeetCode 238:除自身以外数组的乘积(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
一条大祥脚21 分钟前
26杭电暑期第八场(后半)快读|快写|tarjan|路径DP|mex转化|扫描线|前缀和|二分图
数据结构·算法·tarjan·杭电多校·强联通分量·动态规划dp
奈斯先生Vector25 分钟前
从“能调用”到“可运营”:AI Agent 进入多模型时代后的架构升级
java·javascript·数据库·人工智能·算法·架构·aigc
2601_9561219737 分钟前
Bellman-ford算法
算法
叠层归一研究院43 分钟前
基于区分本源的此刻存在唯一性本体论推演
人工智能·算法
luj_176843 分钟前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法
深圳多奥智能一卡(码、脸)通系统1 小时前
智能梯控SDK可直接用于第三方开发对接的接口文档说明书
服务器·前端·算法
Chester_19999 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
裕晟资质规划10 小时前
武器装备科研生产单位保密资质申请方法论:条件模型与流程拆解
人工智能·算法