admin管理员组

文章数量:1437298

【今日三题】笨小猴(模拟) / 主持人调度(排序) / 分割等和子集(01背包)

笨小猴(模拟)

  • 笨小猴
代码语言:javascript代码运行次数:0运行复制
#include <iostream>
#include <string>
#include <cmath>
using namespace std;

string s;
int arr[26];
int maxn = 0, minn = 100;

bool check(int n)
{
    if (n < 2) return false;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0) return false;
    }
    return true;
}
int main()
{
    cin >> s;
    for (auto ch : s) arr[ch - 'a']++;
    for (int i = 0; i < 26; i++)
    {
        if (arr[i])
        {
            maxn = max(maxn, arr[i]);
            minn = min(minn, arr[i]);
        }
    }
    if (check(maxn - minn))
    {
        cout << "Lucky Word" << endl;
        cout << maxn - minn << endl;
    }
    else {
        cout << "No Answer" << endl;
        cout << 0 << endl;
    }
    return 0;
}

主持人调度(排序)

  • 主持人调度
代码语言:javascript代码运行次数:0运行复制
class Solution {
public:
    bool hostschedule(vector<vector<int> >& schedule) {
        sort(schedule.begin(), schedule.end());
        for (int i = 0; i < schedule.size() - 1; i++)
        {
            if (schedule[i][1] > schedule[i + 1][0])
                return false;
        }
        return true;
    }
};

分割等和子集(01背包)

  • 分割等和子集
代码语言:javascript代码运行次数:0运行复制
#include <iostream>
#include <vector>
using namespace std;

int n, sum;
int arr[501];

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> arr[i];
        sum += arr[i];
    }
    if (sum % 2 == 0)
    {
        sum /= 2;
        vector<bool> dp(sum + 1);
        for (int i = 0; i <= n; i++) dp[0] = true;
        for (int i = 1; i <= n; i++)
            for (int j = sum; j >= arr[i]; j--)
                dp[j] = dp[j] || dp[j - arr[i]];
        if (dp[sum]) cout << "true" << endl;
    }
    else cout << "false" << endl;
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-28,如有侵权请联系 cloudcommunity@tencent 删除coutintreturnsum排序

本文标签: 今日三题笨小猴(模拟)主持人调度(排序)分割等和子集(01背包)