当前位置: 首页 > news >正文

可以做彩页的网站ps做图哪个网站好

可以做彩页的网站,ps做图哪个网站好,凡客建站网站下载,学校官网入口A 核心&#xff1a;使用set存储所有相邻字符对&#xff0c;自动去重。 B 错误原解&#xff1a;只想简单的开一个&#xff0c;额外的c数组用来 找原来的索引&#xff0c;但往下做可以发现行不通 #include<bits/stdc.h> using namespace std; const int N100005; long…

核心:使用set存储所有相邻字符对,自动去重。

B

错误原解:只想简单的开一个,额外的c数组用来 找原来的索引,但往下做可以发现行不通

#include<bits/stdc++.h>
using namespace std;
const int N=100005;
long long a[N],b[N],c[N];
void solve(){bool mark[N]={0}; //保证每次调用函数mark数组都重置为0int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];c[i]=a[i];}for(int i=0;i<n;i++){cin>>b[i];}sort(a,a+n);sort(b,b+n);for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(c[i]==a[j]&&!mark[j]&&i!=(n-1)){    //如果数组中存在相同元素,那么此时会直接把所有符合c[i]==a[j]cout<<b[j]<<" ";                   //条件所对应的b[j]一次性全部打印出来,造成第二样例出现多余的数mark[j]=1;}if(c[i]==a[j]&&!mark[j]&&i==(n-1)) cout<<b[j]<<endl;}}
}
int main(){int t;cin>>t;while(t--)solve();return 0;
}

正解:利用pair存储预测温度及其原始索引

核心逻辑分析

1. 数据结构设计

  • vector<pair<int, int>> a:存储预测温度及其原始索引,用于在排序后仍能追踪每个温度的原始位置。
  • vector<int> b:存储实际温度,后续需要排序。
  • vector<int> ans:存储最终结果,按原始索引顺序排列。

2. 排序策略

  • b排序:将实际温度按升序排列。
  • a排序:按预测温度值升序排列,同时保留原始索引。

3. 匹配逻辑

  • 由于题目保证存在解,排序后的ab可以按顺序一一匹配。即排序后的第i个预测温度对应排序后的第i个实际温度。
  • 通过a[i].second获取预测温度的原始索引,将对应的实际温度b[i]放入结果数组ans的正确位置。

陌生知识点

1.

for (auto& i : b) {cin >> i;
}
  • auto& i:声明一个引用变量 i,类型由编译器自动推导(auto)。使用引用(&)允许直接修改容器中的元素。
  • b:要遍历的容器(如 vectorarraystring 等)。
  • 循环体:对容器中的每个元素执行的操作。

上述代码等价于:

for (int i = 0; i < b.size(); i++) {cin >> b[i];
}
2.pair<int, int> a(n) 的含义
  • 创建单个 pair:这行代码创建了一个名为 a 的 pair 对象,而非数组。
  • 初始化参数n 被用作 pair 的第一个元素first)的初始值,第二个元素(second)默认初始化为 0

等价于:pair<int, int> a = {n, 0}; // 第一个元素为n,第二个元素为0

vector<pair<int, int>> a(n); 是 C++ 中声明并初始化一个动态数组的语句,创建了一个名为 a 的 vector 容器,它可以存储 n 个 pair 对象

语法分解

  • vector:C++ 标准库中的动态数组容器,可自动调整大小。
  • pair<int, int>:存储两个 int 类型元素的组合,称为 “键值对”。
  • a(n):创建名为 a 的向量,初始大小为 n,每个元素都是 pair<int, int> 类型,默认初始化为 {0, 0}
  • 排序时,默认会按照 pair 的第一个元素(first)升序排列

总结

  • pair<int, int> a(n):创建 单个 pair,用于存储 一组键值对
  • vector<pair<int, int>> a(n):创建 动态数组,用于存储 多组键值对

代码:

#include<bits/stdc++.h>
using namespace std;
void solve(){int n,k;cin>>n>>k;vector<int>b(n),result(n);vector<pair<int,int>>a(n);for(int i=0;i<n;i++){cin>>a[i].first;a[i].second=i;}for(auto &i:b)cin>>i;sort(b.begin(),b.end());sort(a.begin(),a.end());for(int i=0;i<n;i++){result[a[i].second]=b[i];// 将b[i]放入result中对应a[i]的原始位置}for(int i=0;i<n;i++){cout<<result[i]<<" ";}cout<<endl;
}
int main(){int t;cin>>t;while(t--){solve();}return 0;
}

C

错误原解:求最小值时,必须初始胡为足够大的值,比如1e18;

#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int a[N];
void solve(){int n;cin>>n;long long mn=200005;  //mn 初始化为 200005,若输入的所有元素都大于这个值,for(int i=0;i<n;i++){  //mn 不会被正确更新。应初始化为足够大的值(如 1e18)或第一个元素。cin>>a[i];if(a[i]<mn) mn=a[i];} bool o=1,q=1;for(int i=0;i<n;i++){if(a[i]%2==0)q=0;if(a[i]%2==1)o=0;}if(o||q){cout<<"YES"<<endl;return;}if(mn%2==0){for(int i=0;i<n;i++){if(a[i]%2==1){cout<<"NO"<<endl;return;}}}cout<<"YES"<<endl;
}
int main(){int t;cin>>t;while(t--) solve();return 0;
}

正解:

#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int a[N];
void solve(){int n;cin>>n;long long mn=1e18;  //改数即可for(int i=0;i<n;i++){cin>>a[i];if(a[i]<mn) mn=a[i];} bool o=1,q=1;for(int i=0;i<n;i++){if(a[i]%2==0)q=0;if(a[i]%2==1)o=0;}if(o||q){cout<<"YES"<<endl;return;}if(mn%2==0){for(int i=0;i<n;i++){if(a[i]%2==1){cout<<"NO"<<endl;return;}}}cout<<"YES"<<endl;
}
int main(){int t;cin>>t;while(t--) solve();return 0;
}

核心思路:

  • 若最小元素为奇数,则所有元素都要调整为奇数且奇数-奇数,偶数-奇数都等于奇数,因此,只要最小元素是奇数,就输出YES。
  • 若最小元素为偶数,则所有元素都要调整为偶数,只有偶数-偶数=偶数,因此一旦出现奇数就输出NO。

因此这样写代码更简洁,因为已经包含了全奇全偶的情况了

简洁代码:

#include<bits/stdc++.h> 
using namespace std;     void solve() {           int n;               cin >> n;   vector<int> a(n);    for (int i = 0; i < n; i++)cin >> a[i];     sort(a.begin(), a.end());  // 对数组a进行升序排序if (a[0] % 2 == 1) {       // 检查最小元素是否为奇数cout << "YES" << endl; return;                // 结束当前测试用例的处理}for(int num : a) {        // 遍历排序后的数组aif (num % 2 == 1) {    // 检查是否存在奇数元素cout << "NO" << endl; return;            // 结束当前测试用例的处理}}cout<<"YES"<<endl;     // 若所有元素都是偶数,输出YES
}int main() {                  int t;                cin >> t;                 while(t--) solve();return 0;                 
}
http://www.dtcms.com/a/483132.html

相关文章:

  • 使用Spring Boot构建数据访问层
  • 小白测评做网站免费网页制作有哪些
  • 潍坊专业建站wordpress视频分享
  • Vue 的响应式更新时机 + 异步录音事件回调造成状态“延后更新”或异步竞态问题(race condition)
  • 台州公司网站建设可以搜索附近手机的软件
  • 东莞营销网站建设多少钱淘宝客网站源码和模版有什么区别
  • electron启动页
  • 做公众号试卷的网站网站项目验收确认书
  • 玉儿做春梦网站中信建设有限责任公司ipo
  • word、pdf文档内容提取工具类
  • 【OpenHarmony多媒体开发大总结】从播放到转码全流程+实测踩坑便签,一文打通AVPlayer/SoundPool/录屏/缩略图/元数据提取
  • 02117 信息组织【第六章】
  • 【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化
  • 旅游公司网站难做吗外贸英文网站模板
  • 尚品本色木门网站是哪个公司做的猎头做单网站
  • Linux的动态库和静态库
  • 参透测试(1):普通权限弱口令/弱加密方式/未授权访问
  • 嘉兴专业网站排名推广网站建设的后期服务要包括什么软件
  • 统计订单总数并列出排名
  • **标题:发散创新:探索Deno框架下的应用开发之旅**摘要:本文将深入探讨Den
  • 网站icp备案新规药品网站 icp
  • Linux对象管理机制
  • 网站建设实训考试做电商的步骤
  • 微信小程序uni.request 返回值存在精度丢失问题
  • 做外贸上哪些网站鹤壁集团网站建设
  • 惠城网站建设有哪些网站建设欧美
  • 注册 区块链节点
  • 硅谷甄选(续2)首页
  • 茂名建设公司网站wordpress写书typecho主题
  • 上海网站建设软件下载唐山的做网站的企业