蛮力法找假金币

简介:
#include <iostream>
using namespace std;

bool notFalseGold(int i, int *num, char op)
{
    bool found = false;
    for (int j = 1; j <= num[0] * 2; j++)
    {
        if (num[j] == i)
        {
            found = true;
            break;
        }
    }
    if (found && op == '=' || !found && op != '=' )
        return false;
    else
        return true;
}
int main()
{
    int number[101][1001];//行表示编号,列表示数据
    char op[101];         //对比的结果:< > =这三种
    int n, k;

    cin >> n >> k;
    for (int i = 0; i < k; i++)
    {
        cin >> number[i][0];//0号存两边的砝码个数
        for (int j = 1; j <= number[i][0] * 2; j++)
        {
            cin >> number[i][j];
        }
        cin.get();//吸收回车符
        cin >> op[i];//读取比较的结果
    }

    int t, i, no;
    for (t = 0, i = 1; i <= n; i++)
    {
        int j;
        for (j = 0; j < k && notFalseGold(i, number[i], op[j]); j++)
        {
            ;//此处只是分号
        }
        if (j < k)
            continue;
        t ++; //可能的假金币加1
        if (t > 1)
            break;//如果存在多个假的,那就不符合条件
        else
            no = i;//记下假金币的编号
    }
    if (t == 1)
    {
        cout << no << endl;
    }
    else
    {
        cout << 0 << endl;
    }
    return 0;
}

目录
相关文章
|
7月前
|
弹性计算 运维 Shell
统计双色球各个数字的中奖概率
【4月更文挑战第29天】
154 1
|
机器学习/深度学习 人工智能 自然语言处理
【每周一坑】三国演义中谁的存在感最强 +【解答】暴力计算圆周率
当然,精确统计是比较复杂的,比如同样是刘备,可以是 刘备、玄德、刘豫州、刘皇叔、使君、先主、备,而同样的 主公、丞相、将军 这些称谓在不同语境下指的又是不同的人。这里我们就只粗略算个大概即可,统计哪些个名字出现次数最多。你可以尽量让结果更接近实际值。
|
7月前
|
算法 测试技术 C++
【记忆化搜索】【剪枝】【C++算法】1553吃掉 N 个橘子的最少天数
【记忆化搜索】【剪枝】【C++算法】1553吃掉 N 个橘子的最少天数
|
7月前
【每日一题Day314】LC1921消灭怪物的最大数量 | 贪心+排序
【每日一题Day314】LC1921消灭怪物的最大数量 | 贪心+排序
51 0
|
C语言
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
86 0
【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
|
7月前
|
机器学习/深度学习
蓝桥杯-2/14天-货物摆放【拒绝暴力-巧妙提公因子】
蓝桥杯-2/14天-货物摆放【拒绝暴力-巧妙提公因子】
|
算法
基础算法练习200题08、百鸡问题(循环+逻辑判断+穷举)
基础算法练习200题08、百鸡问题(循环+逻辑判断+穷举)
132 0
基础算法练习200题08、百鸡问题(循环+逻辑判断+穷举)
|
算法 C语言
假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。
(2)当n为奇数时,将前后两部分,即1…n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (n+1)/2枚硬币是假币。n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。:因为30位偶数,所以至少要被分一次,然后成为奇数之后,那个假币就是奇数的中位数,所以只需要2次。若输入的硬币数为30,则最少的比较次数为(2),最多的比价次数为(4)。
570 0
|
算法
染色法判定二分图
复习acwing算法基础课的内容,本篇为讲解基础算法:染色法判定二分图,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
125 0
染色法判定二分图
|
机器学习/深度学习
1688. 比赛中的配对次数 : 简单脑筋急转弯题(全鱼宴 🤣)
1688. 比赛中的配对次数 : 简单脑筋急转弯题(全鱼宴 🤣)