荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: kaman (天外飞仙), 信区: ACMICPC
标  题: [合集]用海文的方法重做了下A题!
发信站: 荔园晨风BBS站 (Tue Jun  1 11:07:25 2004), 站内信件

tec (TO BE A BETTER MAN!) 于Fri Apr 16 19:41:13 2004提到:

效率要比我的方法高很多,不错。

代码如下:(前面那堆垃圾可以不看:)

#ifdef _MSC_VER
#pragma warning (disable:4786)
#define min _MIN
#define max _MAX
typedef __int64 longlong;
#else
typedef long long longlong;
#endif

#include <fstream>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <numeric>
#include <string>
#include <vector>
#include <list>
#include <stack>
#include <queue>
#include <set>
#include <map>

using namespace std;

const int LINE_CAP = 1024;
char line[LINE_CAP];
int n_case, i_case;

int i, j, k;
int coins[6];
int mins[101];
queue<int> new_mins;

int main()
{
        ifstream cin("A.in");
        ofstream cout("A.out");

        cout.setf(ios::fixed);
        cout.precision(2);

        cin >> n_case;

        for (i_case = 0; i_case < n_case; i_case++)
        {
                for (i = 0; i <= 100; i++)
                        mins[i] = 0;

                for (i = 0; i < 6; i++)
                {
                        cin >> coins[i];
                        new_mins.push(coins[i]);
                        mins[coins[i]] = 1;
                }

                while (! new_mins.empty())
                {
                        int a = new_mins.front();
                        new_mins.pop();
                        int c = mins[a]+1;
                        for (i = 0; i < 6; i++)
                        {
                                int b = coins[i], d;
                                d = a+b;
                                if (d >=1 && d <= 100 && !mins[d])
                                {
                                        new_mins.push(d);
                                        mins[d] = c;
                                }
                                d = abs(a-b);
                                if (d >=1 && d <= 100 && !mins[d])
                                {
                                        new_mins.push(d);
                                        mins[d] = c;
                                }
                        }
                }

                cout
                        << accumulate(mins+1, mins+101, 0)/100.0 << " "
                        << *max_element(mins+1, mins+101) << endl;
        }

        return 0;
}


Kenniel (笑翻下先^_^) 于Fri Apr 16 19:53:23 2004提到:

long time no see this ID



tec (TO BE A BETTER MAN!) 于Fri Apr 16 19:58:56 2004提到:

嗯,好久没上了^_^



tec (TO BE A BETTER MAN!) 于Fri Apr 16 19:59:55 2004提到:

还是第一次用这个ID上这个版,hehe



Kenniel (笑翻下先^_^) 于Fri Apr 16 20:00:59 2004提到:

强哈哈!



tec (TO BE A BETTER MAN!) 于Fri Apr 16 20:28:39 2004提到:

我去广州两个月回来这个ID就被删了

可怜我的开国大老啊,555



Kenniel (笑翻下先^_^) 于Fri Apr 16 20:36:00 2004提到:

呃。。。。。可怜哈哈!



kaman (天外飞仙) 于Fri Apr 16 22:24:43 2004提到:

^_^这种只重技巧性不那么重算法的题目挺适合我的~~



kaman (天外飞仙) 于Fri Apr 16 22:33:28 2004提到:

你是?dreamer?



Dreamer (梦想的彼岸) 于Fri Apr 16 22:36:02 2004提到:

听了你的算法后我倒觉得自己的算法怪怪的^_^



Dreamer (梦想的彼岸) 于Fri Apr 16 22:36:40 2004提到:

Yes hoho



huhaiming (一生只爱她) 于Fri Apr 16 22:47:02 2004提到:

能做出来就好


Dreamer (梦想的彼岸) 于Fri Apr 16 23:25:43 2004提到:

记得帮我们找题啊


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店