ZOJ 2207 听说是简单题,结果我是被折磨得半死写出来的代码还特丑

北大POJ部分题目答案(一些基础题目) 很多的POJ题目答案!1000~1008,1011~1014,1016,1017,1019,1028,1032,1045,1046,1047,1050,1061,1067,1068,1088,1102,1159,1163,1183,1207,1218,1226,1247,1256,1258,1298,1316,1323,1326,1338,1363,1396,1401,1423,1455,1458,1468,1477,1488,1503,1504,1517,1519,1528,1543,1547,1552,1265,1579,1604,1629,1656,1657,1658,1663,1664,1665,1674,1799,1844,1862,1922,1953,1969,1979,2000,2013,2017,2027,2039,2070,2080,2105,2109,2136,2140,2141,2159,2190,2196,2242,2247,2249,2262,2301,2309,2328,2350,2386,2388,2389,2390,2403,2405,2453,2479,2487,2498,2509,2521,2533,2538,2551,2562,2575,2578,2583,2591,2593,2601,2602,2608,2636,2663,2707,2719,2739,2801,2840,2871,2909,2924,3006,3030,3062,3077,3085,3094,3100,3173,3176,3210,3224,3302,3325,3438,3673,3036,2503,1731,2503,1065,3636 立即下载

简单题对我这样的新手也很困难啊

 

//////////////////////////////////////////////////////////
//    ZOJ: 2207
//    简单题:通过枚举出所有ABCDE五个字母组成的120种组合然后
//            判断排名。
//////////////////////////////////////////////////////////
#include "stdio.h"

int ranking(char *duibi, char *input);    //用于每个数组里面对数的个数

int main(void)
{
    //枚举出所有情况的字母组合
    char sort[150][50] = {0};
    char szbuf[50] = {"AAAAA"};
    char temp[50] = {'A','B','C','D','E'};
    int i, j, x, y;
    int l = 0;
    int z;
    int k;

    for (i = 0; i < 5; i++)
    {
        szbuf[0] = temp[i];

        for (j = 0; j < 5; j++)
        {
            szbuf[1] = temp[j];

            if (szbuf[0] != szbuf[1])
            {
                for (x = 0; x < 5; x++)
                {   
                    szbuf[2] = temp[x];

                    if (szbuf[2] != szbuf[1] && szbuf[2] != szbuf[0])
                    {
                        for (y = 0; y < 5; y++)
                        {
                            szbuf[3] = temp[y];

                            if (szbuf[3] != szbuf[0] && szbuf[3] != szbuf[1] && szbuf[3] != szbuf[2])
                            {
                                for (z = 0; z < 5; z++)
                                {
                                    szbuf[4] = temp[z];

                                    if (szbuf[4] != szbuf[0] && szbuf[4] != szbuf[1]
                                        && szbuf[4] != szbuf[2] && szbuf[4] != szbuf[3])
                                    {
                                        for (k = 0; k < 6; k++)
                                        {
                                            sort[l][k] = szbuf[k];
                                        }

                                        l++;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
   
    int n;

    while(scanf("%d", &n))
    {
        if (n == 0)
            break;
       
        int value[200] = {0};
        int count = 0;
        int m;
        char cal[10] = {0};
        int resValue = -1;
        int m1;
        int index;

        while (n-- > 0)
        {
            scanf("%s", cal);
            //循环做判断并把值用一个结果数组保存
            for (m = 0; m < 120; m++)
            {
                value[m] += ranking(sort[m], cal);
            }
        }
        //从120字符串序列的结果值中找出距离值最小的并返回下标
        for (m1 = 0; m1 < 120; m1++)
        {
            if (resValue == -1)
            {
                resValue = value[m1];
                index = m1;
            }
            else
            {
                if (resValue > value[m1])
                {
                    resValue = value[m1];
                    index = m1;
                }
            }

        }

        printf("%s is the median ranking with value %d./n", sort[index], resValue);

    }

    return 0;
}
//用于判断的函数计算出每个字符串对比的结果距离值
int ranking(char *duibi, char *input)
{
    int result = 0;
    int i;
    int dui[10], in[10];
    //分别找出A B C D E五个字母的位置
    for (i = 0; i < 5; i++)
    {
        if (duibi[i]  == 'A')
            dui[0] = i;
        else if (duibi[i]  == 'B')
            dui[1] = i;
        else if (duibi[i]  == 'C')
            dui[2] = i;
        else if (duibi[i]  == 'D')
            dui[3] = i;
        else if (duibi[i] == 'E')
            dui[4] = i;
    }
    //参照字符串
    for (i = 0; i < 5; i++)
    {
        if (input[i]  == 'A')
            in[0] = i;
        else if (input[i]  == 'B')
            in[1] = i;
        else if (input[i]  == 'C')
            in[2] = i;
        else if (input[i]  == 'D')
            in[3] = i;
        else if (input[i] == 'E')
            in[4] = i;
    }
   
    int x, y, z = 0;
    int x1, y1, z1 = 0;
    int resa[100], resb[100];
    int o;
    //将五个字母中所有可能值列出
    for (x = 0; x < 5; x++)
    {
        for (y = x + 1; y < 5; y++)
        {
            resa[z++] = dui[x] - dui[y];
        }
    }

    for (x1 = 0; x1 < 5; x1++)
    {
        for (y1 = x1 + 1; y1 < 5; y1++)
        {
            resb[z1++] = in[x1] - in[y1];
        }
    }
    //搜索有产生排名变化的值 发生变化则结果值+1
    for (o = 0; o < z; o++)
    {
        if ((resa[o] > 0 && resb[o] < 0) || (resa[o] < 0 && resb[o] > 0))
        {
            ++result;
        }
    }

    return result;
}

电力市场小白必看:手把手教你用Matlab实现市场出清电价计算(附完整代码) 本文为电力市场初学者提供了使用Matlab计算市场出清电价的完整指南。通过Yalmip和Matpower工具包,详细讲解了从环境配置到模型构建、求解及结果分析的整个过程,帮助读者快速掌握节点电价计算的核心技术。 阅读详情

相关推荐

手把手教你用CCS v7.3调试TI DSP28377:从连接仿真器到看懂Flash里的秘密

本文详细介绍了使用CCS v7.3调试TI DSP28377的全过程,从连接仿真器到解析Flash启动机制。通过实战演示和关键配置要点,帮助工程师快速掌握DSP调试技巧,并深入探讨bootloader设计与在线升级的实现方法,提升开发效率。

weixin_29158413的博客 408

ZOJ-2207

好吧。。这题实在是不想用C写了,本来计算两个串的distance value函数都用C写好了,求全排列没有list用怎么想怎么麻烦,还是JAVA用起来顺手。。几下就搞定了 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args

xhldtc的专栏 524

实用软件工程(第2版)吕云翔编简答题部分答案(自用整理)

整理自用

m0_61217768的博客 4107

zoj 2207 || poj 2038 Team Rankings(= =)

看题目看了半个小时才明白 = =。英语水平啊。。。ABCDE中两两相对位置共有4+3+2+1 = 10种。两个字符串比较,相对位置不同的存下,比如 ABCDE 和 ACBDE,相对位置就BC不一样,所以相差1。1就是value。给你n的串,求出一个ABCDE的排列,使得得出的这个排列跟这n个串的相对位置差累和最小。开始按自己想法,把位置记录下,排下序完事了 = =。再单独算value,算value用得很麻烦的方法。结果样例过了,但是是WA。呃。自己的想法没有得到证明是不能乱用的!!!搜题解。看人家题目就知道

小媛在努力~ 2189

鼎捷T100——二次开发:维护作业添加非实体字段

非实体字段添加

weixin_52342654的博客 1160

《用 Python 爬取统计局年鉴:从 API 抓取到结构化分析,实战全流程详解》

在数据分析、经济研究、商业决策中,国家统计局发布的年鉴数据具有权威性和参考价值。本篇博客将带你从零实践:了解目标、设计爬虫、抓取年度数据、解析 JSON、保存结构化数据、并用 Pandas 简要分析可视化,且使用现代 Python 最佳实践(如httpx、pydantic、typer 等),提升代码质量与效率。如何抓取国家统计局年鉴数据;利用 API 方式高效获取;使用现代异步 Python 提升性能;将数据结构化输出;结合 CLI、类型校验和简单分析技术提升实用性。

2201_76125261的博客 1085

Undercut

  Undercut is a card game where two players each have five cards numbered one through five. At each round, each player selects a card, then simultaneously reveals it. If the cards are of equal value,

ziren235的专栏 1272

手把手教你学GPU的KMD专栏--2.4 GPU固件加载与初始化流程

GPU固件(Firmware)是嵌入在GPU芯片ROM或EEPROM中的低级代码,是GPU启动时首先执行的程序。它负责GPU硬件的基础初始化和基本功能配置,是GPU与操作系统之间的"第一道桥梁"。与操作系统驱动不同,固件在CPU启动后、操作系统加载前就已执行,是硬件层面的"启动代码"。关键认知:GPU固件是GPU的"BIOS",没有它,GPU硬件无法进入可操作状态。就像CPU需要BIOS来初始化内存和外设一样,GPU需要固件来初始化其核心组件。

MHD0815的博客 112

zoj 2207 Team Rankings

//由字符串“ABCDE”的所有排序(可以通过stl中的next_permutation直接得出)与input中 //的字符串进行比较,找出差距值最小的字符串! #include "iostream" #include "map" #include "algorithm" #include "string" #include "limits.h" using namespace std; str

yzl_rex 538

上海计算机学会2020年5月月赛C++乙组T2经济普查

中国正在以前所未有的力度推进脱贫攻坚,国家计划在2020年使得在现行标准下的贫困人口实现全面脱贫,为此,需要对居民的经济状况进行普查。 题目描述 给定一个正整数n,表示人口数量。一开始,每个居民拥有的财产记为a1​,a2​,⋯,an​,财产可能发生两种变化: 一种来源于个体,由某个居民的经济活动而产生。在某个时刻,某个居民的财产会直接变成某个数值,可能升高也可能降低。 一种来源于政策,在某个时刻,国家会对财产低于某个标准线全部的居民,实施政策支持,使得他们的财产全部正好到达标准线。 给定这些变

长春高老师编程 911

基于STM32设计的盲人智能导盲杖

本设计基于STM32单片机,开发了一种面向视障人群的智能导盲杖系统。系统以STM32F103C8T6为核心控制器,集成了超声波测距、语音提示、环境光检测、GPS定位及4G通信等多种功能模块。

648

ZOJ--1057:Undercut

比较简单 直接上代码 import java.util.Scanner; public class ZOJ_1057 { static int n,a,b,flag=0; static int arr[]=new int[20],brr[]=new int[20]; public static void main(String[] args) { Scanner s=new

yf224的博客 520

【007】C++编程必知:原码、补码、反码的全面解读

计算机存储的是数据的补码。原码:计算机中对数字的二进制定点表示方法。比如123的原码是0111 1011。无符号数:原码=反码=补码。有符号数:要分正数和负数,正数的最高位为0,负数的最高位为1。其中,正数的原码、反码、补码都是相同的;负数的反码等于原码的符号数(最高位)不变,其他位取反;补码等于反码+1。比如:-123的原码是1111 1011,反码为1000 0100,补码为1000 0101。原码、补码和反码都是用于计算机表示有符号整数的方法。

Lion_Long的博客 2920

ZOJ Problem Set - 1057||Undercut

Undercut Time Limit: 2 Seconds      Memory Limit: 65536 KB Undercut is a card game where two players each have five cards numbered one through five. At each round, each player selects a card, th

飞舞的指尖 445

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

fjnu 1824 Undercut

DescriptionUndercut is a card game where two players each have five cards numbered one through five. At each round, each player selects a card, then simultaneously reveals it. If the cards are of

异リ度ュ空ウ間(镜像站) 850

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ZJU1057解题报告

UndercutTime limit: 1 Seconds   Memory limit: 32768K   Total Submit: 7787   Accepted Submit: 1832   Undercut is a card game where two players each have five cards numbered one through five. At each ro

枫风的专栏 1158

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

zoj水题分类

zoj水题分类 zoj分类 简单题 #1001 -____-b  A+B。 #1110 Dick and Jane 胡乱枚举收缩一下情况就可以了。(这题脑筋还是要转一个弯的,不然做不出) #1115 a[i+1] = a[i] 的全部数位上的加起来,直到剩下一个,直接模拟。 #1414 太弱太弱,按照模 4 分类讨论一下即可。 #1713 简单的字符串截取

wuzhoudao的专栏 7775

poj 1001 浮点数高精度求幂

//===================================// // //    poj:1001 浮点数求幂 //  完成时间:2001.09.07 // //==================================// #include #include #include const int MAX_LEN = 150; using namespace std; int StringConvert(const string &str, int &t

Mur. 1566

HDU 1496 哈希表实现

HDU:1496这题太恶心,被后面的初始化害惨,由于是2000000的数据如果疏忽便会导致超时#include #include int hash[2000001];int main(void){ int a, b, c, d, x, y; while (scanf("%d %d %d %d", &a, &b, &c, &d) != EOF) {  if ((a > 0 && b > 0 && c > 0 && d > 0) || (a   {   printf("0/n");   continue;  }

Mur. 1181

ZOJ 1110 Dick and Jane 胡乱枚举实现。

<br />今天上ZOJ挑了道别人说比较简单的题目做了下:<br />一开始连题目都没看懂,然后参考了下别人的代码(惭愧),然后用暴力枚举收缩了下范围实现了。<br />代码如下:<br />#include "stdio.h"<br /><br /> int main(void)<br /> {<br />     int ans1;<br />     int ans2 ;<br />     int ans3;<br />     int s, p, y, j;<br />     in

Mur. 959

基础SPFA算法模板

<br />void SPFA(int s) <br /> {<br />     for(int i=1; i<=n; i++)<br />     {<br />         d[i] = MAX;        //对所有到原点的权值初始赋最大值即无限;MAX为常量<br />     }<br />     <br />     d[s] = 0;            //原点权值初始为0<br />     //此处N为一个常量<br />     int queue[N

Mur. 763

HDU1238 有详细注释

<br />#include <iostream><br /> using namespace std;<br /><br /> void sort(char (*data)[110], int count);<br /><br /> int main()<br /> {<br />     int n;<br /><br />     cin >> n;<br /><br />     while (n--)<br />     {<br />         int count;<br

Mur. 751

这是spfa 邻接表实现的版本

//邻接表定义 typedef struct _node {     int v;     int w;     _node *next; }edge; edge map[150]; void SPFA(int s) {     for(int i=1; i     {         d[i] = MAX;        //对所有到原点的权值初始赋最大值即无限;MAX为常量     }     d[s] = 0;            //原点权值初始为0     //此

Mur. 732

zoj 1716 又是一道简单题。直接暴力枚举实现!

<br />////////////////////////////////////////////////////////////<br /> //    ZOJ:1716<br /> //    本题使用枚举法实现效率可能不高,不过问题比较小时可以采用<br /> //    优点:算法会比较简单 <br /> ///////////////////////////////////////////////////////////<br /> #include "stdio.h"<br /><b

Mur. 729
上一篇: zoj 1745 又是简单题
下一篇: ZOJ 2480简单题,无亮点 随便搞
WowBanyan
博客等级 码龄18年 5粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值