題目:
題目描述
眼下出現在 HansBug 蒟蒻面前的是一篇英語作文,然而智商捉急的 HansBug 已經草草寫完了,此時他發現離考試結束還有 404040 分鐘,于是他打算估計一下這篇共有 MMM 個單詞的英語作文的含金量如何。眾所周知的是,在中高考英語作文中使用高級詞匯可以有效提高文章的含金量,從而獲得更好的分數。已知蒟蒻HansBug知道 NNN 個高級詞匯,該詞匯為 AiA_iAi?(詞匯長度為 LiL_iLi? ,包含數字、大小寫字母),該高級詞匯的含金量為 BiB_iBi?,則該高級詞匯每出現一次便可增加 BiB_iBi? 的含金量。可是他腦細胞和 RP 已經消耗殆盡,所以這個偉大的任務就交給你啦!
輸入格式
第一行包含兩個整數 NNN 和 PPP , NNN 表示HansBug共知道的高級詞匯個數, PPP 為模數
第 2?N+12-N+12?N+1行,每行包含一個單詞 AiA_iAi? (長度為Li)和一個整數 BiB_iBi? ,其中 Bi(0<Bi≤105)B_i(0<B_i\le 10^5)Bi?(0<Bi?≤105) 表示該單詞的含金量
接下來直到輸入結束的若干行為一篇英語作文,其中包含共計 MMM 個單詞,以及若干的分隔符(分隔符包含且僅包含,、.、!、?)
輸出格式
一行,包含一個整數,為該文章的總含金量對 PPP 的模。
輸入輸出樣例
輸入 #1
5 99
hansbug 1
kkksc03 2
yyy 3
absi2011 4
lzn 100
hansbug is a juruo!but absi2011 not.!?!
one day absi2011 laughed at yyy and hansbug.
then kkksc03 and lzn blamed him for that.
輸出 #1
16
輸入 #2
5 99
yyyy 1
kkksc03 2
yyy 3
absi2011 4
lzn 100
yyyy is a juruo!but absi2011 not.!?!
one day absi2011 laughed at yyy and yyyy.
then kkksc03 and lzn blamed him for that.
輸出 #2
16
我的代碼:
#include <iostream>
#include <map>
using namespace std;
map<string,int> a;
int main()
{
int n,p,i,co = 0;
string st,s;
cin>>n>>p;
for(i = 0;i < n;i++)
{
cin>>st;
cin>>a[st];
}
while(cin>>st)
{
if(st.find(',') == -1&&st.find('.') == -1&&st.find('?') == -1&&st.find('!') == -1)
{
if(a.find(st) != a.end()) co+=a[st];
}
else
{
for(i = 0;i < st.size();i++)
{
if(st[i] != ','&&st[i] != '.'&&st[i] != '?'&&st[i] != '!')
{
s+=st[i];
}
else
{
if(a.find(s) != a.end()) co+=a[s];
s = "";
}
}
}
}
cout<<co % p;
return 0;
}
請大佬幫忙看看哪里有問題,萬分感謝
備注:哪位和我一樣初學C++的,我們可以私信聊一聊
uj5u.com熱心網友回復:
嗯?難道現在回答別人的帖子看不到其他人的回復嗎?
uj5u.com熱心網友回復:
參考 樓主 末影人014 的回復: 題目:
題目描述
眼下出現在 HansBug 蒟蒻面前的是一篇英語作文,然而智商捉急的 HansBug 已經草草寫完了,此時他發現離考試結束還有 404040 分鐘,于是他打算估計一下這篇共有 MMM 個單詞的英語作文的含金量如何。眾所周知的是,在中高考英語作文中使用高級詞匯可以有效提高文章的含金量,從而獲得更好的分數。已知蒟蒻HansBug知道 NNN 個高級詞匯,該詞匯為 AiA_iAi?(詞匯長度為 LiL_iLi? ,包含數字、大小寫字母),該高級詞匯的含金量為 BiB_iBi?,則該高級詞匯每出現一次便可增加 BiB_iBi? 的含金量。可是他腦細胞和 RP 已經消耗殆盡,所以這個偉大的任務就交給你啦!
輸入格式
第一行包含兩個整數 NNN 和 PPP , NNN 表示HansBug共知道的高級詞匯個數, PPP 為模數
第 2?N+12-N+12?N+1行,每行包含一個單詞 AiA_iAi? (長度為Li)和一個整數 BiB_iBi? ,其中 Bi(0<Bi≤105)B_i(0<B_i\le 10^5)Bi?(0<Bi?≤105) 表示該單詞的含金量
接下來直到輸入結束的若干行為一篇英語作文,其中包含共計 MMM 個單詞,以及若干的分隔符(分隔符包含且僅包含,、.、!、?)
輸出格式
一行,包含一個整數,為該文章的總含金量對 PPP 的模。
輸入輸出樣例
輸入 #1
5 99
hansbug 1
kkksc03 2
yyy 3
absi2011 4
lzn 100
hansbug is a juruo!but absi2011 not.!?!
one day absi2011 laughed at yyy and hansbug.
then kkksc03 and lzn blamed him for that.
輸出 #1
16
輸入 #2
5 99
yyyy 1
kkksc03 2
yyy 3
absi2011 4
lzn 100
yyyy is a juruo!but absi2011 not.!?!
one day absi2011 laughed at yyy and yyyy.
then kkksc03 and lzn blamed him for that.
輸出 #2
16
我的代碼:
#include <iostream>
#include <map>
using namespace std;
map<string,int> a;
int main()
{
int n,p,i,co = 0;
string st,s;
cin>>n>>p;
for(i = 0;i < n;i++)
{
cin>>st;
cin>>a[st];
}
while(cin>>st)
{
if(st.find(',') == -1&&st.find('.') == -1&&st.find('?') == -1&&st.find('!') == -1)
{
if(a.find(st) != a.end()) co+=a[st];
}
else
{
for(i = 0;i < st.size();i++)
{
if(st[i] != ','&&st[i] != '.'&&st[i] != '?'&&st[i] != '!')
{
s+=st[i];
}
else
{
if(a.find(s) != a.end()) co+=a[s];
s = "";
}
}
}
}
cout<<co % p;
return 0;
}
請大佬幫忙看看哪里有問題,萬分感謝
備注:哪位和我一樣初學C++的,我們可以私信聊一聊
我也是初學,現在差不多一年
uj5u.com熱心網友回復:
參考 樓主 末影人014 的回復: 題目:
題目描述
眼下出現在 HansBug 蒟蒻面前的是一篇英語作文,然而智商捉急的 HansBug 已經草草寫完了,此時他發現離考試結束還有 404040 分鐘,于是他打算估計一下這篇共有 MMM 個單詞的英語作文的含金量如何。眾所周知的是,在中高考英語作文中使用高級詞匯可以有效提高文章的含金量,從而獲得更好的分數。已知蒟蒻HansBug知道 NNN 個高級詞匯,該詞匯為 AiA_iAi?(詞匯長度為 LiL_iLi? ,包含數字、大小寫字母),該高級詞匯的含金量為 BiB_iBi?,則該高級詞匯每出現一次便可增加 BiB_iBi? 的含金量。可是他腦細胞和 RP 已經消耗殆盡,所以這個偉大的任務就交給你啦!
輸入格式
第一行包含兩個整數 NNN 和 PPP , NNN 表示HansBug共知道的高級詞匯個數, PPP 為模數
第 2?N+12-N+12?N+1行,每行包含一個單詞 AiA_iAi? (長度為Li)和一個整數 BiB_iBi? ,其中 Bi(0<Bi≤105)B_i(0<B_i\le 10^5)Bi?(0<Bi?≤105) 表示該單詞的含金量
接下來直到輸入結束的若干行為一篇英語作文,其中包含共計 MMM 個單詞,以及若干的分隔符(分隔符包含且僅包含,、.、!、?)
輸出格式
一行,包含一個整數,為該文章的總含金量對 PPP 的模。
輸入輸出樣例
輸入 #1
5 99
hansbug 1
kkksc03 2
yyy 3
absi2011 4
lzn 100
hansbug is a juruo!but absi2011 not.!?!
one day absi2011 laughed at yyy and hansbug.
then kkksc03 and lzn blamed him for that.
輸出 #1
16
輸入 #2
5 99
yyyy 1
kkksc03 2
yyy 3
absi2011 4
lzn 100
yyyy is a juruo!but absi2011 not.!?!
one day absi2011 laughed at yyy and yyyy.
then kkksc03 and lzn blamed him for that.
輸出 #2
16
我的代碼:
#include <iostream>
#include <map>
using namespace std;
map<string,int> a;
int main()
{
int n,p,i,co = 0;
string st,s;
cin>>n>>p;
for(i = 0;i < n;i++)
{
cin>>st;
cin>>a[st];
}
while(cin>>st)
{
if(st.find(',') == -1&&st.find('.') == -1&&st.find('?') == -1&&st.find('!') == -1)
{
if(a.find(st) != a.end()) co+=a[st];
}
else
{
for(i = 0;i < st.size();i++)
{
if(st[i] != ','&&st[i] != '.'&&st[i] != '?'&&st[i] != '!')
{
s+=st[i];
}
else
{
if(a.find(s) != a.end()) co+=a[s];
s = "";
}
}
}
}
cout<<co % p;
return 0;
}
請大佬幫忙看看哪里有問題,萬分感謝
備注:哪位和我一樣初學C++的,我們可以私信聊一聊
你多大了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/17588.html
標籤:C++ 語言
上一篇:菜鳥求問 關于 scanf_s
下一篇:加法計算器