C/C++の宿題を片付け ..
[2ch|▼Menu]
993:デフォルトの名無しさん
07/07/27 01:24:04
>>991
面白そうな問題だ。ちょっと時間がないんで解けないが・・・
これってナップサック問題っていうんだっけ?
あれみたいな感じで、入力内容によっては全パターン検索
しようとしたら膨大な時間になりそうな風に感じるんだが。
そういうの詳しい人いない?

994:デフォルトの名無しさん
07/07/27 01:33:03
ナップサックというより組み合わせ計画問題。
グリーディ法でいけそうな問題だね。めんどくさそうだけど

995:デフォルトの名無しさん
07/07/27 03:03:10
>>935
#include<iostream>
#include<string>
#include<vector>

using namespace std;

int main(void){
    vector<string> v;
    string word;
    int i;

    while(1){
        cin >> word;
        if(cin.eof() || cin.fail()) break;
        for(i=0;i<v.size();i++){
            if(v[i]==word) break;
        }
        if(i>=v.size()) v.push_back(word);
    }
    for(i=0;i<v.size();i++){
        cout << v[i] << "," << v[i].size() << " ";
    }
    cout << endl;

    return 0;
}

996:デフォルトの名無しさん
07/07/27 04:18:53
#include <iostream>
#include <set>
#include <string>

int main( int argc, char ** argv ) {
typedef std::set< std::string > dict_t;
dict_t wc;
while ( 1 ) {
std::string word;
std::cin >> word;
if ( std::cin.eof() || std::cin.fail() ) break;
wc.insert( word );
}
for ( dict_t::iterator it = wc.begin(); it != wc.end(); it++ ) std::cout << *it << ", " << it->length() << " ";
std::cout << std::endl;
return 0;
}
set<> なり,map<> なりじゃなきゃ遅くてどうしようもないだろうに

997:デフォルトの名無しさん
07/07/27 08:13:33
>>988
指定にgets使わないといけないとか言ってクレームした出題者がいるから
それもgets使わないといけないと思われ。

998:デフォルトの名無しさん
07/07/27 08:51:42
>>991
URLリンク(kansai2channeler.hp.infoseek.co.jp)
全角半角の判定のために非標準の関数wcwidthを使った。

999:998
07/07/27 08:54:04
>if(feof(stdin) || ferror(stdin))
>  break;
これは消し忘れ。

1000: ◆mM9WALL8Ws
07/07/27 08:54:13
1000GET

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5392日前に更新/328 KB
担当:undef