OpenJudge计算概论-比饭量【枚举法、信息数字化】

简介: /*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 65536kB 描述 3个人比饭量,每人说了两句话: A说:B比我吃的多,C和我吃的一样多 B说:A比我吃的多,A也比C吃的多 C说:我比B吃得多,B比A吃的多。
/*======================================================================
比饭量
总时间限制: 1000ms 内存限制: 65536kB
描述
3个人比饭量,每人说了两句话:
A说:B比我吃的多,C和我吃的一样多
B说:A比我吃的多,A也比C吃的多
C说:我比B吃得多,B比A吃的多。
事实上,饭量和正确断言的个数是反序的关系。
请编程按饭量的大小输出3个人的顺序。

输入
无输入
输出
按照饭量大小输出3人顺序,比如:
ABC
样例输入
无
样例输出
无

解析:这个题目在OpenJudge提交时,题目意思不清晰,应该按饭量从小到大的顺序输出字母 
用三重for循环枚举所有可能的解
对每一种可能的解计算每一个人正确断言的数量 
然后把饭量、正确断言数量分别打包到数组(把人对应的编号一起封装)
对两个数组进行排序(一个由大到小,另一个由小到大) 
检测两个数组每一个元素对应的人名字是否一致,若所有人的名字一致,得到一个可行解。输出
继续循环寻找下一个可行解 
========================================================================*/
 1 #include<iostream>
 2 using namespace std;
 3 struct person
 4 {
 5     int n;//饭量或者断言数量
 6     char name;//名字 
 7 };
 8 int main()
 9 {
10     int a,b,c;//三者的范围都是1~3,这里把a、b、c的值看作他们的饭量(不一定要用1~3,只要能区分出三个数的大小就行了)
11     //当然,也可以换一下思路,用a、b、c表示饭量排名
12     int A,B,C;//表示断言正确的数量 
13     struct person x[3],y[3],t;
14     int i,j,flag;
15     for(a=0;a<3;a++)
16     {
17         for(b=0;b<3;b++)
18         {
19             for(c=0;c<3;c++)
20             {
21                 A=(b>a)+(c==a);
22                 B=(a>b)+(a>c);
23                 C=(c>b)+(b>a);
24                 /*假如三个人的饭量不会相等、三个人的断言正确数量也不会相等,
25                 下面就判断a+A、b+B、c+C是否都相等,都等于3就行了。
26                 但是这个题目,三个人饭量可能相等,断言正确数量也可能一样,必需用其他方式*/ 
27                 //下面把a、b、c、A、B、C分别放到数组x、y当中。 然后对x、y数组进行排序
28                 x[0].n=a;x[0].name='A';
29                 x[1].n=b;x[1].name='B'; 
30                 x[2].n=c;x[2].name='C';
31                 y[0].n=A;y[0].name='A';
32                 y[1].n=B;y[1].name='B'; 
33                 y[2].n=C;y[2].name='C';
34                 //对x数组按元素的饭量从大到小排序,对y数组按元素的断言正确数量从小到大排序
35                 for(i=1;i<3;i++)
36                 {
37                     flag=1;
38                     for(j=0;j<3-i;j++) 
39                     {
40                         if(x[j].n<x[j+1].n)
41                         {
42                             flag=0;
43                             t=x[j];
44                             x[j]=x[j+1];
45                             x[j+1]=t;
46                         }
47                     }
48                     if(flag) break; //if(flag==1) break;
49                 }
50                 
51                 for(i=1;i<3;i++)
52                 {
53                     flag=1;
54                     for(j=0;j<3-i;j++) 
55                     {
56                         if(y[j].n>y[j+1].n)
57                         {
58                             flag=0;
59                             t=y[j];
60                             y[j]=y[j+1];
61                             y[j+1]=t;
62                         }
63                     }
64                     if(flag) break; //if(flag==1) break;
65                 }
66                 //从头到尾检查x和y数组每一个元素对应的是否是同一个人 
67                 for(i=0;i<3;i++)
68                 {
69                     if(x[i].name!=y[i].name) break;
70                 }
71                 if(i==3)
72                 {//输出结果 
73                     for(i=2;i>=0;i--)
74                         cout<<x[i].name;
75                     cout<<endl;
76                 }
77             }
78         }
79     }
80     return 0;
81 }

 

相关文章
|
6月前
|
存储 监控 安全
Java数字化可视化智慧工地信息管理平台源码
技术栈: 微服务架构+Java+Spring Cloud +UniApp +MySql支持多端展示(PC端、手机端、平板端)
81 0
|
1月前
|
SQL 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的重要基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升安全意识的有效策略,为读者揭示数字时代下信息保护的核心要义。
本文聚焦网络安全与信息安全领域,详细剖析了网络安全漏洞的形成机理、常见类型及其潜在危害,强调了及时检测与修复的重要性。同时,文章系统介绍了对称加密、非对称加密及哈希算法等主流加密技术的原理、应用场景及优缺点,展现了加密技术在保障数据安全中的核心地位。此外,针对社会普遍存在的安全意识薄弱问题,提出了一系列切实可行的提升措施,如定期安全培训、强化密码管理、警惕钓鱼攻击等,旨在引导公众树立全面的网络安全观,共同构筑数字世界的安全防线。
|
2月前
|
机器学习/深度学习 安全 网络安全
云端盾牌:云计算时代的网络安全守护在这个数字脉搏加速跳动的时代,云计算以其高效、灵活的特性,成为推动企业数字化转型的强劲引擎。然而,正如每枚硬币都有两面,云计算的广泛应用也同步放大了网络安全的风险敞口。本文旨在探讨云计算服务中网络安全的关键作用,以及如何构建一道坚不可摧的信息防线,确保数据的安全与隐私。
云计算作为信息技术领域的革新力量,正深刻改变着企业的运营模式和人们的生活。但在享受其带来的便利与效率的同时,云服务的安全问题不容忽视。从数据泄露到服务中断,每一个安全事件都可能给企业和个人带来难以估量的损失。因此,本文聚焦于云计算环境下的网络安全挑战,分析其根源,并提出有效的防护策略,旨在为云服务的安全使用提供指导和参考。
65 8
|
6月前
|
运维 供应链 安全
SaaS模式云HIS数字化医院信息系统源码
云HIS具有可扩展、易共享、易协同、低成本、体验号、更便捷、易维护的优势,重新定义了数字化医院信息系统,实现数字化医院信息系统的转型升级。云 HIS 系统具有功能完善,涵盖临床各业务部门,采集、抽提、汇总、存贮、展现所有的临床诊疗资料(包括:数据、文本、图形、图像、声音等),是医疗机构实现临床信息化的理想信息平台。
89 1
|
6月前
|
存储 索引 Windows
PACS影像信息数字化存储系统源码,C/S架构的医学影像系统源码
全院影像设备联网与影像信息数字化存储,建立涵盖全院的PACS/RIS系统,实现从预约、登记、分诊、排队叫号、检查、诊断阅片、报告发布、自助胶片打印等流程化管理。 PACS系统应用在医院影像科时,它直接与CT、MR、ECT、DSA和DR等提供DICOM标准图像的医学设备进行软硬对接。该系统应用在超声、内窥镜、病理等科室时,提供视频、普通图片的医学设备进行软硬对接。检查结果以DICOM、BMP、JPG等多种格式进行长期保存,形成影像历史、诊断历史。这些历史数据可供医生重复调阅,作为编写诊断报告的重要参考。
PACS影像信息数字化存储系统源码,C/S架构的医学影像系统源码
|
6月前
|
弹性计算 资源调度 Cloud Native
融合云计算与分布式系统架构:拥抱数字化时代的技术进化
在当今数字化时代,云计算和分布式系统架构成为企业转型的关键工具。本文将探讨这两项技术的融合,以及它们在提升效率、降低成本和增强可扩展性方面的潜力。通过深入分析云计算和分布式系统架构的原理和优势,我们将看到如何利用这些技术推动企业的数字化转型。
|
6月前
|
存储 数据处理 容器
数字化检验信息系统LIS应用的分析与总结
门诊室工作人员利用“门诊医生站”开立电子检验申请单; 2、收费员根据电子检验申请单,将电子申请单录入 HIS 门诊收费系统中; 3、患者提交申请单、发票或者诊疗卡,由采集人员按照患者诊疗号从 HIS系统中调出患者的缴费信息,并根据系统中项目后颜色提示,做好相关的准备工作; 4、采集人员根据已扫描的条码试管,采集患者的样本;
|
23天前
|
人工智能 供应链 搜索推荐
开源进销存软件如何助力中小企业数字化转型?
中小企业在数字化转型中面临巨大挑战,包括市场竞争压力和效率低下等问题。数字化转型能提升效率、降低成本、优化资源利用,增强企业竞争力。进销存软件作为重要工具,通过自动化业务流程、实时数据分析、供应链协同管理、移动化办公和数据安全保护,帮助中小企业实现高效运营。选择合适的进销存软件需考虑功能需求、易用性、成本、稳定性和安全性、可扩展性及售后服务。未来,进销存软件将更加智能化、移动化、高度集成和个性化,助力中小企业实现可持续发展。
54 1
开源进销存软件如何助力中小企业数字化转型?
|
9天前
|
运维 监控 安全
分布式系统的演进对企业数字化转型的影响
【10月更文挑战第24天】分布式系统的演进对企业数字化转型产生了深远的影响。它为企业提供了强大的技术支撑,推动了企业在各个方面的发展和进步。然而,企业也需要清醒地认识到分布式系统带来的挑战和风险,积极应对,才能在数字化转型的道路上取得成功。
26 4
|
1月前
|
运维 Cloud Native 安全
云原生架构:企业数字化转型的新引擎##
【10月更文挑战第2天】 在当今数字化浪潮中,云原生架构以其独特的优势成为企业实现高效、灵活和创新的核心驱动力。本文深入探讨了云原生的概念、核心技术如容器化、微服务和DevOps等,并分析了这些技术如何共同作用,推动企业在云平台上实现快速迭代、弹性扩展和资源优化。同时,文章还阐述了云原生在实际应用中面临的挑战及相应的解决策略,为企业的数字化转型提供全面而深入的指导。 ##
48 17

热门文章

最新文章