codeforces --- Round #250 (Div. 2) A. The Child and Homework
这题就是一个坑,尼玛wa了一大片啊。
自己被hack了,比赛结束后改了又wa两次才过。
【题目大意】
其实就是一个猜题小技巧(联系自己初中考试的时候怎么猜题的,这题就好理解多了)。
这位同学是这样来选答案的:
1.如果有一些选项长度至少比其他所有的描述短两倍,或至少超过所有其他的描述的两倍,那么孩子认为这个选择很可能是正确的。
2.如果正好满足以上其中一种条件(重点),这个同学就会选择它,否则就选C.
给你一个选择题,让你选择出这个同学将会选择的答案。
【题目分析】
首先,这个题目就是一个模拟,模拟本身不难,想一下就有思路了,但是只怪很多人都没看清题目,只怪审题不仔细啊。
题目里面有句话是很关键的:If there is exactly one great choice then the child chooses it.
也就是说,如果两个条件都满足的话,这位同学就不知道哪个的正确概率大,所以他又转过来选C。

#include<bits/stdc++.h> using namespace std; int main() { // freopen("cin.txt","r",stdin); int i,j; int len[5]; char str[4][200]; for(i=0;i<4;i++) { scanf("%s",str[i]); len[i]=strlen(str[i])-2; } int Find1=0,mark1; for(i=0;i<4;i++) { if(len[i]*6<=(len[(i+1)%4]+len[(i+2)%4]+len[(i+3)%4])) //找到了有可能符合条件的选项 { Find1=1; mark1=i; // cout<<"if-1"<<endl; for(j=0;j<4;j++) //继续判断 { if(j!=i) { if(len[i]*2>len[j]) { Find1=2; //不符合 break; } } } if(Find1==1) //判断一遍后任然成立,那就说明这个选项符合 break; } } int Find2=0,mark2; for(i=0;i<4;i++) { if(len[i]*6>=(len[(i+1)%4]+len[(i+2)%4]+len[(i+3)%4])) //找到了有可能符合条件的选项 { Find2=1; mark2=i; // cout<<"if-2"<<endl; for(j=0;j<4;j++) //继续判断 { if(j!=i) { if(len[i]<len[j]*2) { Find2=2; //不符合 break; } } } if(Find2==1) //判断一遍后任然成立,那就说明这个选项符合 break; } } // cout<<"mark="<<mark<<endl; if(Find1==1&&Find2==1) { printf("C\n"); return 0; } if(Find1==1) printf("%c\n",mark1+'A'); else if(Find2==1) printf("%c\n",mark2+'A'); else printf("C\n"); return 0; }
作者:北岛知寒
出处:https://www.cnblogs.com/crazyacking/p/3764863.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?