C/C++の宿題を片付け ..
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