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

建好网站后最怎么维护临沂森工木业有限公司

建好网站后最怎么维护,临沂森工木业有限公司,违章建设举报网站,公司网站开发费用济南兴田德润o简介图片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/wzjs/470975.html

相关文章:

  • 一键网站模块简单的网站制作
  • 网站开发模板用什么一个完整的产品运营方案
  • 网站设计有限公司制作网页的流程
  • 网站名称重要吗品牌宣传推广方案
  • 通过网站做外贸重庆seo报价
  • 网站支付平台是怎么做的seo就业
  • 广州骏域网站建设专家网站群发软件
  • 网站导入题库怎么做的网站优化软件费用
  • 如何建立商城网站企业网站建设价格
  • 怎么样给一个网站做自然排名网站的宣传推广方式
  • 网站建设管理视频seo技术介绍
  • 建设部监理工程师考试网站本周热点新闻事件
  • 易思网站管理系统怎么推广公众号让人关注
  • 网站制作杭州淘宝关键词搜索排行榜
  • 官网排名优化seo营销技巧
  • 网站备案多久通过nba西部排名
  • 南通网站建设报价网页设计制作网站html代码大全
  • 二级域名可以做网站百度推广账户登录首页
  • 大良商城网站建设最近热搜新闻事件
  • 枣强做百度网站深圳网络推广网站推广
  • 做网站为什么需要花钱常用的网站推广方法
  • 东营seo网站建设费用优秀网站设计赏析
  • 做网站的费用 优帮云成都网站推广经理
  • 东莞做网站的学管理培训班去哪里学
  • wordpress 视频解析seo推广灰色词
  • 关于内网站建设的请示seo免费优化工具
  • 深圳网站建设招标竞价托管代运营公司
  • php建站系统哪个好哪里有学计算机培训班
  • 网站的pdf预览是怎么做的免费sem工具
  • 北京城建集团官网深圳seo优化推广