POJ 3902 The Bad Number第一次积分赛K题
来源:互联网 发布:网络语言暴力调研论文 编辑:程序博客网 时间:2024/05/20 14:15
第一次积分赛的K题,比赛的时候一直在搞这个题目,n,m,k。结果是TLE,WA都没有WA成功,后来下来分析,题目并没有自己想的那样简单。
题目地址:The Bad Number
/* 自己的代码硬是过不了,找各种数据,开始以为m=1不能拆分但是可以拆分为1. 自己的分类: n=1或者m=1 k=1 n=2时m分奇偶 n==3时 k分余1余2 n>3时 不过,解题报告分类跟我第一次想差不多,再找最后一个的时候暴力找出来,看是否可以匹配。 尤其是再k定了以后找到m余数m0不为0的时候,先res++,如果res%n==0,直接再加一次res,就OK了。 */ #include<cstdio> #include<cmath> using namespace std; int main() { int T,i; scanf("%d",&T); while(T--) { int n,m,k; int res=0; scanf("%d%d%d",&n,&m,&k); //if(k>m) //k=m-1; if(k%n==0) k--; if(n==1) { puts("-1"); //n为1的时候绝对不可以 } else if(k==1) //把k放在最前面讨论,以免到n==3时候讨论进入for循环,花费时间 { if(m%n==0) puts("-1"); else printf("%d\n",m); } else if(n==2) { if(!(m&1)) //表示m%2==0 { puts("-1"); //偶数不可能是奇数个奇数相加 } else { res=m/k; m=m%k; if(m>0) res++; if(res%2==0) res++; printf("%d\n",res); } } else //n>2,k>1 { res=m/k; m=m%k; /*if(m==0) { if(res%n==0) res++; printf("%d\n",res); } else if(m%n!=0) { res++; if(res%n==0) res++; printf("%d\n",res); } else { if(n>3) //写成m了 { if(k==m+1) res++; if(res%n==0) res++; printf("%d\n",res); } else if(k%3==2) //m==3此种情况最为复杂 { if(res%n==0) res++; printf("%d\n",res); } else //k%3==1 不好弄 { if(k==m+1) res++; if(res%n==0) res++; printf("%d\n",res); }*/ if(m>0) { res++; if(res%n==0) res++; //这样一步直接省略了很多,扩展一项,不再考虑 else if(m%n==0) { if(res==1) //针对k>n的情况 res=2; //最多是2 else if((k-1)%n==0) { int flag=0; for(i=1;i<n&&i<k-m;i++) if((m+i)%n!=0&&(k-i)%n!=0) { flag=1; break; } //如果falg=1说明找到了k可以和最后一个数凑成两个不是n的倍数的数 if(flag==0) { res++; if(res%n==0) { res++; //因为找不到不成倍的数,已经拆分了,而且因为项数成倍还需要继续拆分 } } } } } printf("%d\n",res); } } return 0; }
- POJ 3902 The Bad Number第一次积分赛K题
- POJ 3902 The Bad Number(贪心)
- POJ 3902 The Bad Number 已被翻译
- POJ 3899 幸运数第一次积分赛H题
- POJ3902 The Bad Number
- The Bad Number poj3902
- hdu 2665 Kth number || poj 2761 Feed the dogs || poj 2104 K-th Number
- K-th Number (POJ
- 2015暑假第一次积分赛
- poj 2104 K-th Number
- poj 2104 K-th Number
- Poj 2104 K-th Number
- POJ-2104-K-th Number
- POJ 2014 K-th Number
- POJ 2104 K-th Number
- POJ 2104.K-th Number
- POJ-2104-K-th Number
- POJ 2104 K-th Number
- 关键字is 、as,is a 、has a
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架-5.2 表字段综合管理模块
- vb.net按英文表示方式取得系统时间
- Oracle回收站(Recycle Bin)
- Android之Handler在新线程中处理消息
- POJ 3902 The Bad Number第一次积分赛K题
- Linux UDP C/S例子
- java设计模式---观察者模式
- linux查看文件夹大小
- linux下的双网卡bonding配置
- 动态规划:从新手到专家
- Android 中Message,MessageQueue,Looper,Handler详解+实例
- Android中调用系统所装的软件打开文件
- ora-12154:tns:无法解析指定的连接标识符