cf870c Maximum splitting 题解
来源:互联网 发布:淘宝活动报名入口 编辑:程序博客网 时间:2024/05/18 02:16
先来说说题意。将一个数剖成一些合数,问最多能剖成多少个。
我们知道,最小的合数是4,所以贪心思路就是尽量多的get到4这个合数。
分析一下,显然,如果这个数是4的倍数,直接除4;如果除4余2,那么不妨来思考一下,除以4之后剩下一个2,刚好可以和4凑一个6。
而对于除4余1的情况,我们发现1+4+4=9是个合数,所以这里需要两个4才能凑出来,也就是a/4-1。对于除4余3的情况,3+4+4+4=15是个合数。但是要注意,15=6+9也是可拆的,所以相当于-3个4又+了2,所以还是/4-1。
当然,对于某些数需要特判一下。
#include <iostream>using namespace std;int main(){ long long q,n; cin>>q; while(q--){ cin>>n; if(n<4||n==5||n==7||n==11){ cout<<-1<<endl; }else if(n%4==0||n%4==2) { cout<<n/4<<endl; }else if(n%4==1||n%4==3){ cout<<n/4-1<<endl; } } return 0;}
果然今天不适宜模拟赛(
阅读全文
0 0
- cf870c Maximum splitting 题解
- C. Maximum splitting--codeforces
- codeforces 870C Maximum splitting
- codeforces 870C. Maximum splitting
- CodeForces 872C Maximum splitting
- Codeforces Round #440 div2 C. Maximum splitting
- Codeforces 872 C Maximum splitting(规律)
- Codeforces 872C Maximum splitting【思维】
- Codeforces Round #440 C. Maximum splitting
- codeforces 899A Splitting in Teams题解
- 【Codeforces Round #440 (Div. 2) C】 Maximum splitting
- Codeforces Round #440 (Div. 1) A. Maximum splitting
- Codeforces Round #440 (Div. 2)C. Maximum splitting
- Codeforces Round #440 (Div. 2) C. Maximum splitting
- Codeforces Round #440 (Div. 2,)-数学&规律- Maximum splitting
- LeetCode题解:Maximum Subarray
- LeetCode题解:Maximum Subarray
- LeetCode - Maximum Gap 题解
- mvp+okhttp+recyclerview
- 运行python提示no module named sklearn
- 追梦人物的博客搭建教程——NameError:name'Category ' is not defined错误
- 树莓派GPIO入门11-驱动液晶屏幕(一)
- SEO优化用户体验如何做好呢
- cf870c Maximum splitting 题解
- 简单计算(入门)
- struts2的命名规则
- 4.2 字符串模式匹配
- IIS服务器安全关注点
- XML学习笔记
- Leetcode-DFS+BST
- Xlistview 的使用
- NOIP 2009 靶形数独