من که همش Time Limit Exceeded میگیرم از این مساله، کلافم کرد:19:
Printable View
من که همش Time Limit Exceeded میگیرم از این مساله، کلافم کرد:19:
شما accept شدین ؟نقل قول:
من یه بار این ارورو خوردم بعد درستش کردم . از Map استفاده می کنین ؟ اگه از اون استفاده کنین کارتون خیلی خیلی راحت میشه .نقل قول:
نه استفاده نکردم یعنی تا حالا باهاش کار نکردم، میشه یه مثال ازش بزنید:31:نقل قول:
من تو هر بار خوندن تلفن هم تبدیلش می کردم هم تکراری بودن تلفن ها رو برسی می کردم فکر کنم این باعث پایین اومدن سرعت شده
فعلا که سایتشون هنگ کرده فردا امتحان میکنمنقل قول:
پس از اینکه من همه رشته ها رو به عددهای استاندارد خواسته شده مسئله تبدیل کردم با استفاده از map که یه رشته رو با یه عدد متناظر می کنه استفاده می کنم . مثلا فلان رشته چند تا فراوانی داره . یه خوبیش اینه که وقتی بهش چیزی insert می کنی خودش به صورت مرتب شده insert می کنه . من آخر برنامه مو این جوری نوشتم :نقل قول:
کد:typedef map< string, int > mid;
mid final;
for( int i = 0; i < n; i++ )
{
int s1 = final.size();
final.insert( mid::value_type( result[ i ], 1 ) );
int s2 = final.size();
if( s2 == s1 )
final[ result[ i ] ]++;
}
واوووو ، این map خیلی باحاله فکر نمی کردم ++c یه همچین کلاسی داشته باشه، ممنون بابت مثال
منم accept گرفتم، اینم سورس
کد:#include <iostream>
#include <string>
#include <cctype>
#include <map>
using namespace std;
const char chTable[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, '2', '2', '2', '3', '3',
'3', '4', '4', '4', '5', '5', '5', '6', '6', '6',
'7', 0, '7', '7', '8', '8', '8', '9', '9', '9' };
void MakeStandard(string &ph)
{
string cp(ph);
ph = "";
int count = 1;
for ( string::iterator Iter = cp.begin(); Iter != cp.end(); Iter++ )
{
if ( isdigit(*Iter) || isupper(*Iter))
{
if ( isdigit(*Iter) )
ph += *Iter;
else if ( isupper(*Iter) )
ph += chTable[*Iter];
if ( count == 3 )
ph += '-';
count++;
}
}
}
int main()
{
int N;
string ph_string;
map<string, int> phone_map;
cin >> N;
while ( N-- )
{
cin >> ph_string;
MakeStandard(ph_string);
phone_map[ph_string]++;
}
bool flag = false;
for (map<string, int>::iterator Iter = phone_map.begin(); Iter != phone_map.end(); Iter++)
{
if ( Iter->second > 1 )
{
flag = true;
cout << Iter->first << " " << Iter->second << endl;
}
}
if ( !flag )
{
cout << "No duplicates." << endl;
}
return 0;
}
کد شما قشنگ تره . منم با این accept شدم .
کد:#include <iostream>
#include <vector>
#include <string>
#include <list>
#include <map>
using namespace std;
int main()
{
int n;
cin >> n;
vector< string > arr( n );
for( int i = 0; i < n; i++ )
cin >> arr[ i ];
vector< string > result( n );
int flag;
int index = 0;
for( int i = 0; i < n; i++ )
{
flag = 0;
index = 0;
result[ i ].resize( 8 );
for( size_t j = 0; j < arr[ i ].size(); j++ )
{
if( arr[ i ].at( j ) == '-' )
continue;
if( isdigit( arr[ i ].at( j ) ) )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = arr[ i ].at( j );
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'A' || arr[ i ].at( j ) == 'B' || arr[ i ].at( j ) == 'C' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '2';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'D' || arr[ i ].at( j ) == 'E' || arr[ i ].at( j ) == 'F' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '3';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'G' || arr[ i ].at( j ) == 'H' || arr[ i ].at( j ) == 'I' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '4';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'J' || arr[ i ].at( j ) == 'K' || arr[ i ].at( j ) == 'L' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '5';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'M' || arr[ i ].at( j ) == 'N' || arr[ i ].at( j ) == 'O' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '6';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'P' || arr[ i ].at( j ) == 'R' || arr[ i ].at( j ) == 'S' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '7';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'T' || arr[ i ].at( j ) == 'U' || arr[ i ].at( j ) == 'V' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '8';
index++;
flag++;
}
else if( arr[ i ].at( j ) == 'W' || arr[ i ].at( j ) == 'X' || arr[ i ].at( j ) == 'Y' )
{
if( flag == 3 )
{
result[ i ].at( index ) = '-';
index++;
flag++;
}
result[ i ].at( index ) = '9';
index++;
flag++;
}
}
}
typedef map< string, int > mid;
mid final;
for( int i = 0; i < n; i++ )
{
int s1 = final.size();
final.insert( mid::value_type( result[ i ], 1 ) );
int s2 = final.size();
if( s2 == s1 )
final[ result[ i ] ]++;
}
int print = 0;
for( mid::iterator it = final.begin(); it != final.end(); ++it )
{
if( it->second != 1 )
{
print = 1;
cout << it->first << ' ' << it->second << endl;
}
}
if( print == 0 )
cout << "No duplicates." << endl;
return 0;
}
سلام ببخشید می دونم حرفی که می زنم ربطی به بحس نداره ولی مهم بود گفتم بپرسم
مسابقات acm دانش آموزی شریف هر ساله 16 و 17 بهمن انجام هیشد حالا امسال دیگه ازش خبری نیست می خواستم بدونم کسی ازش خبر داره؟
یک سایتی به آدرسispc.schoolnet.com داشت که اون هم دیگه وجود نداره.
ممنون می شم اگه جواب بدین
فقط برای اینکه تاپیک اون ته نره .
مسابقات جهانی 2010 هم به پایان رسید .
دو تیم ایرانی حاضر در این مسابقات هم متاسفانه بدترین نتیجه تا حال حاضر را برای ایران رقم زدن . 4 سوال از 11 سوال و رتبه 36 .
امیرکبیر از شریف زودتر 4 سوال رو حل کرد و از اون جلو زد .
این هم جدول بندی :
و این هم سوال ها :کد:http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=Results%20World%20Finals%202010
کد:http://cm.baylor.edu/ICPCWiki/attach/Problem%20Resources/2010WorldFinalProblemSet.pdf
سلام بر و بکس. عجب تاپیک خوبیه اینجا و من چه دیر اومدم. بعد از امتحانات اصلا یادم رفت اینحارو! عجبا!
آقا دمت گرم این سوالای 2010 رو گذاشتی. سوال اولش رو خوندم طول کشید کاملا بفهمم منظورش چیه اما بعدش خیلی سخت نیست. البته من حلش نکردم اما بنظرم یه چیزی مثل تبدیل postfix به infix اومد! با این تفاوت که استاد سر کلاس درسش نداده! ببینم حتما باید حل این ها به زبان C++ یا اصلا زبان برنامه نویسیه خاصی باشه؟ یا شبهه کد هم قبوله؟
راستی یه سوال دیگه! توی جدولی که لینکش رو دادی یه زمان هم نوسته! این زمان اگه به ثانیس که خیلی کمه! و اگه به دقیقست که واویلا!!! حدود یک روز و نیمه! بالا خره کدومشه؟!!!
ممنون فیق! راستی اون سوال شوکولاته هم بخونید سوال شماره j خیلی باحاله کلی آدم دهنش آب میفته میخونتش!