Codeforces 872 C Maximum splitting(规律)
来源:互联网 发布:php txt教程下载 编辑:程序博客网 时间:2024/06/01 22:10
题目地址
题意:给你T个查询,每次查询告诉你个数字num,问这个数字最多能被几个合数相加组成。
思路:其实我们能发现,能用到的基础合数就是4,6,9,因为对于8来说你都可以用2个4去组成了,何必用一个8呢,所以我们就用4为底去求模。我们就会发现有这些情况:
- 余数为0,全部由4组成
- 余数为1,需要两个4去组成9,这样就牺牲了一个数
- 余数为2,需要一个4去组成6,这样就不会增加或者减少数
- 余数为3,需要三个4去组成一个9和一个6,这样就牺牲了一个数
坑点就是在于我们减一些数之前要判断他是不是有这么多4去操作,而不是直接减。
#include <iostream>#include <cstring>#include <string>#include <queue>#include <vector>#include <map>#include <set>#include <stack>#include <cmath>#include <cstdio>#include <algorithm>#define N 400010#define LL __int64#define inf 0x3f3f3f3f 0#define lson l,mid,ans<<1#define rson mid+1,r,ans<<1|1#define getMid (l+r)>>1#define movel ans<<1#define mover ans<<1|1const int mod = 1000000007;using namespace std;int main() { cin.sync_with_stdio(false); int T, num; cin >> T; while (T--) { cin >> num; int n = num % 4; int m = num / 4; if (n == 0) { cout << m << endl; } else if (n == 1) { if (m > 1) { cout << m - 1 << endl; } else cout << -1 << endl; } else if (n == 2) { if (m > 0) { cout << m << endl; } else { cout << -1 << endl; } } else { if (m > 2) { cout << m - 1 << endl; } else { cout << -1 << endl; } } } return 0;}
阅读全文
0 0
- Codeforces 872 C Maximum splitting(规律)
- CodeForces 872C Maximum splitting
- C. Maximum splitting--codeforces
- Codeforces 872C Maximum splitting【思维】
- Codeforces Round #440 (Div. 2,)-数学&规律- Maximum splitting
- codeforces 870C Maximum splitting
- codeforces 870C. Maximum splitting
- Codeforces Round #440 (Div. 2)C. Maximum splitting
- Codeforces Round #440 div2 C. Maximum splitting
- Codeforces Round #440 C. Maximum splitting
- 【Codeforces Round #440 (Div. 2) C】 Maximum splitting
- Codeforces Round #440 (Div. 2) C. Maximum splitting
- Codeforces Round #259 (Div. 2) C. Little Pony and Expected Maximum (找规律)
- 【CodeForces】297C - Splitting the Uniqueness(构造)
- 【Codeforces】-297C-Splitting the Uniqueness(构造)
- codeforces Maximum splitting (一个数分割成合数的最大值)
- Codeforces Round #440 (Div. 1) A. Maximum splitting
- codeforces 297C Splitting the Uniqueness
- 阿里巴巴Java开发规约插件使用
- 六、Ubuntu16.04下CPU或GPU模式caffe安装教程
- 《Java编程思想》学习之对象入门1.6数据保存
- PixHawk学习笔记 之 源码浅析—mc_pos_control.cpp—do_control(dt)
- URI 权限
- Codeforces 872 C Maximum splitting(规律)
- 欢迎使用CSDN-markdown编辑器
- 工作者线程
- keil 常犯错误处理
- Vxlan学习笔记——原理
- 机器学习分类之结合实际应用介绍KNN算法原理以及利用sklearn进行分类预测
- 修改 gcc 和 g++ 的默认版本
- 从URL输入到页面的展示都发生了什么
- java 中如何创建不可变并且static的map