全部评论
最后一道是那个什么AAA BBB CCC的吗,那测试样例也太简单了,题意都描述不清。
用long试试
第一题ac0.9,第二题没看懂😂
一样,第一题改用long过了0.9,第二题自测用例通过提交是0
求2题的思路
一样全0,感觉写的没问题
同第一题case通过率为0,本地可以过
看到一样我就放心了。。。。
看到大家都一样就放心,哈哈哈哈哈哈哈哈哈哈哈哈
第一题不知道为啥0.9
求个第二题的思路
ABC的全排列比较少,就打个表判断哪些可以,一共有36种,除了示例,还有比如[ABC,BAC,CBA],[AAA,AAA,AAA],[ABB,ABB,ABB](全相同)等。将输入存一个hash里,每一种组合的方案个数为3个相乘,比如AAA有2个,BBB有2个,CCC有两个,那么[AAA,BBB,CCC]的组合有8种。再加上如果AAA之类的如果个数大于3,也是可以组起来的,用组合公式算(我这里好像写错了,时间不够- - )。虽然提交也是0,但多给10分钟,我觉得是能AC的。
第二题到底是啥意思啊,我按每张牌0,1,2属性对应位置匹配集合{A,B,C},{A,A,A},{B,B,B},{C,C,C}是0%,把每张牌都看成一个集合来匹配也是0%,什么鬼
bool check(string& a, string& b, string& c) int cal(int n)//算排列 int main() { vector<string> str = { "AAA","AAB","AAC","ABA","ABB","ABC","ACA","ACB","ACC", };//全排列27个 vector<vector<vector<string>>> str_is; for (int i = 0; i < 25; i++) { for (int j = i + 1; j < 27; j++) { for (int k = j + 1; k < 27; k++) { if (check(str[i],str[j],str[k])) { vector<string> tmp2; vector<vector<string>> tmp1; tmp2.push_back(str[i]); tmp2.push_back(str[j]); tmp2.push_back(str[k]); tmp1.push_back(tmp2); str_is.push_back(tmp1); } } } } unordered_map<string, int> hash; int n,res = 0; cin >> n; while (n--) { int m = 3; string tmp; while (m--) { char input; cin >> input; tmp += input; } hash[tmp] ++; } for (auto var : str_is) { int res_tmp ; res_tmp = hash[var[0][0]] * hash[var[0][1]] * hash[var[0][2]]; res += res_tmp; } for (auto var : hash) { if (var.second > 3) res += cal(var.second); }
相关推荐
12-26 21:26
南京大学 C++ 黑皮白袜臭脚体育生:写一个业务项目一个轮子项目会更好,简历条例统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标写,如使用了redis实现了商户,用户等高频信息的缓存,相比查询数据库提升了查询速度优化了用户体验
另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程,如果觉得有帮助的话可以点个小星星,蟹蟹
投递牛客等公司10个岗位 >
点赞 评论 收藏
分享