蛮力法找假金币

#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;
}
时间: 2024-10-24 17:45:20

蛮力法找假金币的相关文章

用穷举法找出1到100的质数并显示出来

用穷举法找出1到100的质数并显示出来.分别使用while.do-while.for循环语句实现. 1.用while: include<iostream.h> void main() {int i,j,n,m; i=2; while(i<101) {m=1;n=i/2;j=2; while(j<=n) { if(i%j==0) {m=0; breake; } j++; } if(m) cout<<i<<""; i++; } } 2.用do

常用算法:C#用回溯法找出n个自然数中取r个数的全排列

回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验.在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯. 本实例是用回溯法输出n个自然数中以r个数全排列.代码如下: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />public void Arrange(int n, int r) int i = 0, j; st

用“替换法”“对照法”处理电脑黑屏两例_硬件维护

"替换法"就是用无故障的部件替换可能有故障或无故障但不能正常工作的部件,从而找出或排除故障的一种方法."对照法"就是将有故障的电脑或部件与无故障的电脑或部件对照,从而找出排除故障的方法.这两种方法是非常有用的,在电脑的许多故障排除中都会用到它.这是我在机房维护中的两大法宝,特举下面两个实例,希望能给你一点启示.    故障一    单位新买回一台14英寸显示器,说明书上称最高分辨率为1024×68,于是我将分辨率改为1024×768,重新启动机器,黑屏.    故

贪心算法-找出一个-1,0,1三值矩阵中的最大全1子块

问题描述 找出一个-1,0,1三值矩阵中的最大全1子块 并不要求子块仍为一个矩阵,但要求形状为凸多边形,可进行行列变换,只要求所求子块最大. 我的理解是:用贪心法找出一个连续的最全1块,再进行行列变换保证子块形状为凸. 数据量较大,文件形式给出.

5个找出Linux中“二进制命令”描述和系统中位置的方法

在数千个 Linux 系统上的命令/程序中,知道给定命令的类型和目的以及其在系统上的位置(绝对路径)对于新手来说可能是一个挑战. 知道命令/程序的一些细节不仅有助于 Linux 用户掌握大量命令,还能使用户理解命令行或脚本在系统上的操作. 因此,在本文中我们将向你解释五个有用的命令,用于显示给定命令的简短描述和位置. 要在系统上发现新命令,请查看 PATH 环境变量中的所有目录.这些目录存储系统上安装的所有命令/程序. 一旦你找到一个有趣的命令,在继续阅读更多关于它的手册页之前,请尝试如下收集一

《FLUENT 14.0超级学习手册》——1.2 计算流体力学(CFD)基础

1.2 计算流体力学(CFD)基础 FLUENT 14.0超级学习手册 计算流体动力学(Computational Fluid Dynamics,CFD)是近代流体力学.数值数学和计算机科学结合的产物,是一门具有强大生命力的边缘科学. 1.2.1 CFD概述 CFD以电子计算机为工具,应用各种离散化的数学方法,对流体力学的各类问题进行数值实验.计算机模拟和分析研究,以解决各种实际问题. 计算流体力学和相关的计算传热学.计算燃烧学的原理是用数值方法求解非线性联立的质量.能量.组分.动量和自定义的标

JAVA实现链表面试题_java

这份笔记整理了整整一个星期,每一行代码都是自己默写完成,并测试运行成功,同时也回顾了一下<剑指offer>这本书中和链表有关的讲解,希望对笔试和面试有所帮助. 本文包含链表的以下内容: 1.单链表的创建和遍历 2.求单链表中节点的个数 3.查找单链表中的倒数第k个结点(剑指offer,题15) 4.查找单链表中的中间结点 5.合并两个有序的单链表,合并之后的链表依然有序[出现频率高](剑指offer,题17) 6.单链表的反转[出现频率最高](剑指offer,题16) 7.从尾到头打印单链表(

探究怎样衡量微信营销效果

近期有做一些实际的微信营销案例,其中一个是为一个淘宝卖家双12做的微信营销推广,该卖家无微信粉丝,需要借助其他大号推广前一日总共选取了10个与该卖家所售商品比较符合的微信公众平台草根大号,活动主题为双12微信用户商品免费送,送完为止.进行了图文专题发送,用户点击图文专题后,跳转至淘宝卖家wap购买页面,当日总共覆盖了100万微信用户,点击量4万,实现购买500单. 可以说微信的媒体属性还是很强的,用户参与活动.查看内容的习惯还是有的,微信对于商家来说作为一种传播途径,能实现这一的效果已经很不错了

管理好自己的业余时间 (要努力,更要聪明)_励志篇

管理好自己的业余时间人的差异在于业余时间.业余时间生产着人才,也生产着懒汉.酒鬼.牌迷.赌徒,由此不仅使工作业绩有别,也区分出高低优劣的人生境界. --著名物理学家爱因斯坦 从前,有两个道士分别住在相邻两座山上的庙里.这两座山之间有一条河,两个道士每天都会在同一时间下山去河边挑水,久而久之便成了好朋友. 不知不觉4年过去了,有一天左边这座山的道士没有下山挑水.右边那座山的道士心想:"他大概睡过头了."因此就没太在意.哪知第二天,左边这座山的道士还是没有下山挑水. 一个星期过去了,右边那