美文网首页
贪心Hdu1052田忌赛马

贪心Hdu1052田忌赛马

作者: 我好菜啊_ | 来源:发表于2018-03-23 12:37 被阅读0次

两个版本我都写了不知道为什么一直wa=========啊
唉真是跟网上的代码一行一行都对过了,算了吃饭去了,难受
希望我可以早日明白到底是怎么回事
另外这位兄弟写的不错
https://www.cnblogs.com/DOLFAMINGO/p/7538779.html

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int n;
    vector<int> tian;
    vector<int> qi;
    int h;
    int ans;
    int flag = 0;
    while (cin >> n&&n) {
        if (flag)
            cout << endl;
        flag = 1;
        ans = 0;
        for (int i = 1; i <= n; ++i) {
            cin >> h;
            tian.push_back(h);
        }
        for (int i = 1; i <= n; ++i) {
            cin >> h;
            qi.push_back(h);
        }
        sort(tian.rbegin(), tian.rend());//降序
        sort(qi.rbegin(), qi.rend());
        int l1 = 0, l2 = 0, r1 = n - 1, r2 = n - 1;//田和齐当前最好与最差的马
        while (l1 <= r1) {//注意这个循环终止条件
            if (tian[r1] > qi[r2]) {
                ans += 200;
                --r1; --r2;
            }
            else if (tian[r1] < qi[r2]) {
                ans -= 200;
                --r1; ++l2;
            }
            else {
                if (tian[l1] > qi[l2]) {
                    ans += 200;
                    ++l1; ++l2;
                }
                else if (tian[l1] < qi[l2]) {
                    ans -= 200;
                    --r1; ++l2;
                }
                else {
                    if (tian[r1] < qi[l2]) ans -= 200;
                    --r1; ++l2;
                }
            }

        }
        cout << ans;
    }
    system("pause");
    return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int n;
    vector<int> tian;
    vector<int> qi;
    int h;
    int ans;
    int flag = 0;
    while (cin >> n&&n) {
        if (flag)
            cout << endl;
        flag = 1;
        ans = 0;
        for (int i = 1; i <= n; ++i) {
            cin >> h;
            tian.push_back(h);
        }
        for (int i = 1; i <= n; ++i) {
            cin >> h;
            qi.push_back(h);
        }
        sort(tian.rbegin(), tian.rend());//降序
        sort(qi.rbegin(), qi.rend());
        int l1 = 0, l2 = 0, r1 = n - 1, r2 = n - 1;//田和齐当前最好与最差的马
        while (l1 <= r1) {//注意这个循环终止条件
            if (tian[l1]<qi[l2]) {
                    //田最差与齐最好vs输
                    ans -= 200;
                    --r1;
                    ++l2;
            }
            else if (tian[l1] > qi[l2]) {
                 //田最好与齐最好vs赢
                ans += 200;
                l1++;
                l2++;
            }
            else if (tian[l1] == qi[l2]) {
                if (tian[r1] > qi[r2]) {
                    //田最差与齐最差vs赢
                    ans += 200;
                    --r1;
                    --r2;
                }
                else {
                    //田最差与齐最好vs
                    //注意这里有一种田最差与齐最好相等的可能所以和最上面
                    //田最好不如齐最好是不一样的
                    if (tian[r1] < qi[l2]) ans -= 200;
                    --r1;
                    ++l2;
                }
            }

        }
        cout << ans;
    }
    system("pause");
    return 0;
}

相关文章

  • 贪心Hdu1052田忌赛马

    两个版本我都写了不知道为什么一直wa=========啊唉真是跟网上的代码一行一行都对过了,算了吃饭去了,难受希望...

  • P50-优势洗牌(田忌赛马)-贪心

  • 艾宾浩斯遗忘曲线

    【1】穿着 田忌赛马

  • 田忌赛马

    田忌赛马打破套路,创新规则的实践实例。

  • 田忌赛马

    晚上不要高强度学习 适宜轻松学习 要为第二天早上着想 不要把自个儿限定死了 不要放弃无限的可能 过犹不及,宁缺毋滥...

  • 田忌赛马

    去年,儿子将田忌赛马的故事给我们讲了很得意。我们当然要顺势引导一下,这个故事告诉我们什么,儿子很自如地说了要擅长用...

  • 田忌赛马

    昨天晚上躺在床上看书,突然就想起小的时候学过的田忌赛马的故事,顿时就来了兴趣,也无心去看手中的书,好好盘算了一下这...

  • 田忌赛马

    http://acm.nyist.net/JudgeOnline/problem.php?pid=364

  • 田忌赛马

    1,不要去做你最新知道的,而是要用这种思路去做你上个阶段已经做过的。 2,不要只用你做过的方式去做,要适当用你不知...

  • 田忌赛马

    齐威王有一个爱好就是特别和田忌塞马,他们有三匹马分别是上等马,中等马,下等马,齐威王和他每次都是上等马对上等马,...

网友评论

      本文标题:贪心Hdu1052田忌赛马

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