[COCI2017-2018#5] Olivander:
又是COCI的一道水题(orz)

这道题的思路很简单(只要英语足够好就行

思路:

1,把数字排一下序

2,一对一对的判断看是否适合

3,只要有不行的就跳出去输出NE

4,输出DA+结束

AC Code:


#include <iostream>
#include <algorithm>//头文件
using namespace std;//常规
int main()
{
    int a[121],b[121];//定义
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];//循环输入魔杖的长度
    for(int i=1;i<=n;i++)
    cin>>b[i];//循环输入盒子的长度
    sort(a+1,a+n+1);
    sort(b+1,b+n+1);//把两个都排好序
    for(int i=n;i>=1;i--)
    {
        if(a[i]<=b[i])//一一判断
        continue;//如果可以就继续
        else//如果不行的话
        {
            cout<<"NE";//就输出NE
            return 0;//直接结束
        }
    }
    cout<<"DA";//输出可以(DA)
    return 0;//结束
}

请大家勿抄题解


AT1428:
首先讲一讲思路吧:

1,把这三个数放入数组输入

2,把三个数按从小到大排序

3,如果最小的数等于最大的数,就证明三个数都相等,就输出任意一个数

4,判断最小的数和其次小的数是否相等,再判断最大的数和其次大的数是否相等,如果满足就输出另外一个数。


注意事项:

1,要sort到第四个元素(要+1)

2,一定要换行

3,急时return 0;

代码:


#include <bits/stdc++.h>//万能头文件
using namespace std;//常规
int main()//主函数
{
    int a[4];//定义
    cin>>a[1]>>a[2]>>a[3];//输入
    sort(a+1,a+4);//排序(按从小到大排序)
    if(a[1]==a[3])//判断三个数是否都相等
    {
        cout<<a[1]<<endl;输出随意一个数
        return 0;//结束
    }
    if(a[1]==a[2])//判断有没有两个数是相等
    {
        cout<<a[3]<<endl;//输出另一个数
        return 0;//结束
    }
    if(a[2]==a[3])//判断有没有两个数是相等
    {
        cout<<a[1]<<endl;//输出另一个数
        return 0;//结束
    }
    return 0;//结束
}

希望大家能从这篇题解中学到知识,谢谢!


AT2685:
这道题不难所以不毕紧张。

基本思路:

第一步:求出首字母。

第二部:求出除去首字母和末子母之后字符串的长度,直接将长度减二即可。

第三部:求出末子母。

直接上代码:


#include <iostream>//头文件
using namespace std;
int main()//主函数
{
    string a;//定义一个字符串
    cin>>a;//输入字符串
    cout<<a[0]<<a.length()-2<<a[a.length()-1]<<endl;//先输出首字母,在输出除去首字母和末子母之后字符串的长度,后输出末字母。一定要还行。
    return 0;//华华丽丽的结束
}

最后讲一下.length()的用法吧。

用途:求出字符串长度

用法:在.length()前加上字符串名称即可。

其他:

每计算一次length都要花一次时间,所以最好在前面定义一下比如说:int la=a.length()或int lb=b.length()等。这样可以减少运行时间。

That's All.


不见不散!