博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Wannafly挑战赛29A御坂美琴
阅读量:6456 次
发布时间:2019-06-23

本文共 941 字,大约阅读时间需要 3 分钟。

这套题很有意思2333

蠢了……首先先判总共加起来等不等于\(n\),不是的话就不行
然后dfs记录\(n\)不断分下去能分成哪些数,用map记录一下,判断是否所有数都能被分出来就是了

//minamoto#include
#define int long long#define fp(i,a,b) for(register int i=a,I=b+1;i
I;--i)using namespace std;char buf[1<<21],*p1=buf,*p2=buf;inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}int read(){ int res,f=1;char ch; while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1); for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0'); return res*f;}const int N=1e5+5;int n,sum,x,m,a[N];map
mp;void dfs(int n){ if(mp[n])return;mp[n]=1; dfs(n/2),dfs(n-n/2);}signed main(){// freopen("testdata.in","r",stdin); n=read(),m=read(); fp(i,1,m)a[i]=read(),sum+=a[i]; if(sum!=n)return puts("ham"),0; dfs(n);fp(i,1,m)if(!mp[a[i]])return puts("ham"),0; return puts("misaka"),0;}

转载于:https://www.cnblogs.com/bztMinamoto/p/10042676.html

你可能感兴趣的文章
18年selenium3+python3+unittest自动化测试教程(下)
查看>>
Redis集群中删除/修改节点(master、slave)(实验)
查看>>
memcache数据库和redis数据库的区别(理论)
查看>>
我的友情链接
查看>>
MyBatis+Spring结合
查看>>
Office 365之SkyDrive Pro
查看>>
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
查看>>
无缝滚动实现原理分析【公告栏】
查看>>
Java Web 高性能开发
查看>>
CentOS 4.4双网卡绑定,实现负载均衡
查看>>
Scala之柯里化和隐式转换
查看>>
获取androdmanifest里面的meta-data
查看>>
mysql拷贝表的几种方式
查看>>
用设计模式去掉没必要的状态变量 —— 状态模式
查看>>
linux安装elasticsearch及遇到的各种问题
查看>>
健忘的正则
查看>>
[转]CMake快速入门教程:实战
查看>>
IntelliJ IDEA创建JavaWeb工程及配置Tomcat部署
查看>>
Markdown用法
查看>>
求最大值及其下标
查看>>