lsmCC 发表于 2024-1-15 10:19:00

程序段错误,再调用map的b值产生警告,不知道怎么修改

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define deb(x) cout<< #x << " = " <<x <<'\n';
#define INF 0x3f3f3f3f
#define int long long
using namespace std;
typedef pair<int,int>pii;
void solve()
{
    int n;
    cin>>n;
    vector<int>a(n);
    map<int,int>mp;
    vector<int>cnt;
    for(int i=0;i<n;i++)
    {
      cin>>a;
      mp]++;
    }
    for(auto:mp)
    {
      cnt.push_back(b);
    }
    sort(cnt.begin(),cnt.end());
    vector<int>sum(cnt.size());
    sum=cnt;
    for(int i=1;i<n;i++)
    {
      sum=sum+cnt;
    }
    int ans=INF;
    for(int i=0;i<=n;i++) //i最小为0次,最大为n次
    {
      // 二分找那个点
      int pos =lower_bound(cnt.begin(),cnt.end(),i)-cnt.begin(); //找到大于等于x的位置
      int cost =0;
      cost =sum+sum.back()-sum-(cnt.size()-pos)*i; // pos后面那个要减去的数
      ans=min(cost,ans);
    }
    cout<<ans<<endl;
}




signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
      solve();
    }
}

FishC 发表于 2024-1-15 10:19:09

在你的代码中,#include后面没有包含头文件的名称。请确保包含所需的头文件,并且你可以使用C++标准库中的map容器和算法函数。

这是一个示例代码,展示如何使用map容器和算法函数:

#include <iostream>
#include <map>
#include <algorithm>

using namespace std;

int main() {
    // 创建一个map容器
    map<int, int> myMap;

    // 在map中插入值
    myMap.insert(pair<int, int>(1, 10));
    myMap.insert(pair<int, int>(2, 20));
    myMap.insert(pair<int, int>(3, 30));
    myMap.insert(pair<int, int>(4, 40));
    myMap.insert(pair<int, int>(5, 50));

    // 遍历输出map中的键值对
    for (auto it = myMap.begin(); it != myMap.end(); ++it) {
      cout << "Key: " << it->first << ", Value: " << it->second << endl;
    }

    // 使用算法函数对map中的值进行操作
    transform(myMap.begin(), myMap.end(), myMap.begin(), [](pair<int, int> p) {
      return make_pair(p.first, p.second * 2);
    });

    // 再次遍历输出修改后的map中的键值对
    for (auto it = myMap.begin(); it != myMap.end(); ++it) {
      cout << "Key: " << it->first << ", Value: " << it->second << endl;
    }

    return 0;
}

希望这可以帮助到你!如果有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 程序段错误,再调用map的b值产生警告,不知道怎么修改