zzuliOJ 2536: 绿绿学姐与AI 1
題目網(wǎng)址:http://acm.zzuli.edu.cn/problem.php?id=2536
1、題目
2536: 綠綠學(xué)姐與AI 1
時(shí)間限制: 2 Sec??內(nèi)存限制: 128 MB
提交: 176??解決: 34
[狀態(tài)] [討論版] [提交] [命題人:zzuliacm]
題目描述
綠綠學(xué)姐對(duì)機(jī)器學(xué)習(xí)很感興趣,她開(kāi)始研究機(jī)器學(xué)習(xí)算法。
她研究的第一個(gè)問(wèn)題是語(yǔ)義識(shí)別,當(dāng)她花了十分鐘完全掌握之后,發(fā)現(xiàn)她手上沒(méi)有訓(xùn)練樣本,于是她把這個(gè)任務(wù)交給了你,如果你出色地完成了她的任務(wù),就可以吸收她的歐氣。
綠綠學(xué)姐給你的任務(wù)是這樣的:
她會(huì)給你n個(gè)詞語(yǔ),其中前a個(gè)是正面的詞語(yǔ),剩下的b個(gè)是負(fù)面的詞語(yǔ),隨后給出Q個(gè)句子,你需要輸出這個(gè)句子偏向負(fù)面還是正面。
假設(shè)一個(gè)句子包含x個(gè)正面的詞語(yǔ),y個(gè)負(fù)面的詞語(yǔ),如果x>y,我們就說(shuō)這個(gè)句子偏向正面,如果x<y,我們就說(shuō)這個(gè)句子偏向負(fù)面,如果x==y,我們就說(shuō)這個(gè)句子是中性的。
輸入
一個(gè)數(shù)T,表示數(shù)據(jù)的組數(shù),1<=T<=50。
每組數(shù)據(jù)第一行包含三個(gè)整數(shù)n,a,b,含義如上所述,1<=n<=5000, 1<=a,b<=n,保證a+b==n,。
隨后是n行,每行一個(gè)詞語(yǔ)。
隨后一個(gè)整數(shù)Q,表示Q個(gè)句子,1<=Q<=500。
隨后Q行,每行一個(gè)句子,句子長(zhǎng)度不超過(guò)1000。
詞語(yǔ)長(zhǎng)度不超過(guò)20,并且只包含小寫(xiě)字母,句子由若干個(gè)用一個(gè)空格隔開(kāi)的詞語(yǔ)構(gòu)成。
輸出
對(duì)于每一個(gè)句子輸出一行。
如果句子是偏正面的,輸出"positive"。
如果句子是偏負(fù)面的,輸出"negative"。
如果句子是中性的,輸出"neuter"。(輸出均不包含引號(hào))
樣例輸入 Copy
1 5 2 3 happy glad sad sorry cry 3 you are happy you are sad you are student樣例輸出 Copy
positive negative neuter來(lái)源/分類
?2017湖南工業(yè)大學(xué)校賽
2、C++題解代碼
#include <iostream> #include <cstdio> #include <cstdlib> #include <map> #include <string> #include <algorithm> using namespace std;map<string, int> words;int main() {int t;scanf("%d", &t);while (t--){int n, a, b;string str;scanf("%d%d%d", &n, &a, &b);for (int i = 1; i <= n; i++){cin >> str;words.insert(make_pair(str, i));}int Q;scanf("%d", &Q);while (Q--){int ans = 0;while (cin >> str){map<string, int>::iterator it;it = words.find(str);if (it != words.end()){if (it->second <= a)ans++;elseans--;}if (getchar() == '\n')break;}if (ans > 0)puts("positive");else if (ans < 0)puts("negative");elseputs("neuter");}words.clear();}return 0; }總結(jié)
以上是生活随笔為你收集整理的zzuliOJ 2536: 绿绿学姐与AI 1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zzuliOJ【土豪婷婷请吃饭】【解法:
- 下一篇: AIProCon在线大会笔记之张钹院士: