蓝杯四十六

作者: 逍遥_9353 | 来源:发表于2018-02-12 22:40 被阅读14次

算法训练 最长字符串 

时间限制:1.0s  内存限制:512.0MB

提交此题   

  求出5个字符串中最长的字符串。每个字符串长度在100以内,且全为小写字母。

样例输入

one two three four five

样例输出

three

#include "stdio.h" 

#include "string.h" 

int main() 

    char arr[5][101]; 

    int i,max ; 

    int n[5]; 

    for(i=0;i<5;i++) 

    { 

        scanf("%s",arr[i]); 

        n[i]=strlen(arr[i]); 

    } 

    max=0 ; 

    for(i=1;i<5;i++) 

    { 

        if(n[max]<n[i]) 

        { 

            max=i ; 

        } 

    } 

    printf("%s\n",arr[max]); 

    return 0 ; 

思路分析:

一、定义变量:5个字符串(二维数组),最大,字符串(一维数组);

二、for语句循环输入字符串;

三、for语句循环,if语句判断找出最长字符串;

四、输出最长字符串。

算法提高 盾神与砝码称重 

时间限制:1.0s  内存限制:256.0MB

提交此题   

问题描述

  有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码。盾神为他的发现兴奋不已!于是他准备去称一称自己的东西。他准备好了m种物品去称。神奇的是,盾神一早就知道这m种物品的重量,他现在是想看看这个天平能不能称出这些物品出来。但是盾神稍微想了1秒钟以后就觉得这个问题太无聊了,于是就丢给了你。

输入格式

  第一行为两个数,n和m。

  第二行为n个数,表示这n个砝码的重量。

  第三行为m个数,表示这m个物品的重量。

输出格式

  输出m行,对于第i行,如果第i个物品能被称出,输出YES否则输出NO。

样例输入

4 2

1 2 4 8

15 16

样例输出

YES

NO

样例输入

4 1

10 7 1 19

6

样例输出

YES

数据规模和约定

  1<=n<=24, 1<=m<=10.

#include<iostream> 

#include<algorithm> 

#include<string.h> 

#include<cmath> 

using namespace std; 

int n,m,flag; 

int w[25],k[25]={0}; 

bool cmp(const int &x, const int &y) 

    return x > y; 

void dfs(int s,int x) 

    if (flag){ //退出条件 

        return ; 

    } 

    if (s == 0) 

    { 

        flag = 1; 

        return ; 

    } 

    if (abs(s)>k[x]){//必然不行 

        return ; 

    } 

    for (; x<n; x++) 

    { 

        //两种情况 

        dfs(s-w[x],x+1); 

        dfs(s+w[x],x+1); 

    } 

int main() 

    int s; 

    cin>>n>>m; 

    for (int i=0; i<n ;i++) 

    { 

        cin>>w[i]; 

    } 

    sort(w,w+n,cmp); 

    //集合砝码和 

    for (int i=n-1; i>=0; i--) 

    { 

        k[i] = w[i]+k[i+1]; 

    } 

    while (m--) 

    { 

        cin>>s; 

        flag = 0; 

        dfs(s,0); 

        if (flag){ 

            cout<<"YES"<<endl;           

        } else{ 

            cout<<"NO"<<endl; 

        } 

    } 

    return 0; 

思路分析:

一、定义变量:两个数,砝码重量,物品重量,循环次数;

二、输入两个数;

三、For语句循环输入砝码重量;

四、调用函数,集合砝码和;

五、根据题意:当物品能被称出,输出YES否则输出NO。

相关文章

  • 蓝杯四十六

    算法训练 最长字符串 时间限制:1.0s 内存限制:512.0MB 提交此题 求出5个字符串中最长的字符串。每...

  • 蓝杯二十

    /*数的读法 问题描述Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万...

  • 蓝杯十八

    /*矩形面积交 问题描述平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对...

  • 蓝杯四十

    算法训练 统计单词个数 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一个长度不超过200...

  • 蓝杯十二

    一、/*分糖果 问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都...

  • 蓝杯九

    /*阶乘计算 问题描述 输入一个正整数n,输出n!的值。其中n!=1*2*3*…*n。算法描述n!可能很大,而计算...

  • 蓝杯十三

    一、/*打印下述图案问题描述使用循环结构打印下述图形,打印行数n由用户输入。打印空格时使用"%s"格式,向prin...

  • 蓝杯十五

    /*买不到的题目问题描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋...

  • 蓝杯六

    一、/*所有水仙花数 问题描述 打印所有100至999之间的水仙花数。所谓水仙花数是指满足其各位数字立方和为该数字...

  • 蓝杯八

    一、/*最大最小值 问题描述给定 N 个整数,请你找出这 N 个数中最大的那个和最小的那个。 输入格式第一行包含一...

网友评论

    本文标题:蓝杯四十六

    本文链接:https://www.haomeiwen.com/subject/jubdtftx.html