UVa 10493 Cats, with or without Hats
2015-12-04 12:54
337 查看
题意:一喵可带一帽,一帽可装n喵。m只喵没带帽子,有且只有1只喵不在其它喵带的帽子里。问有几喵。
思路:不在其它喵帽子里的那个喵是树根。由此形成一棵树,每只喵要么无子节点,要么有n个子节点。显然总数y为帽子的里喵的和加上不在帽子里的喵。设总数为y,则有
y = (y - m) * n + 1 => y = (n*m - 1) / (n - 1)。
注意n==1时,m可为任意值,即Multiple。
思路:不在其它喵帽子里的那个喵是树根。由此形成一棵树,每只喵要么无子节点,要么有n个子节点。显然总数y为帽子的里喵的和加上不在帽子里的喵。设总数为y,则有
y = (y - m) * n + 1 => y = (n*m - 1) / (n - 1)。
注意n==1时,m可为任意值,即Multiple。
#include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cstdio> #include <vector> #include <string> #include <queue> #include <stack> #include <cmath> #include <set> #include <map> using namespace std; typedef long long LL; #define mem(a, n) memset(a, n, sizeof(a)) #define ALL(v) v.begin(), v.end() #define si(a) scanf("%d", &a) #define sii(a, b) scanf("%d%d", &a, &b) #define siii(a, b, c) scanf("%d%d%d", &a, &b, &c) #define pb push_back #define eps 1e-8 const int inf = 0x3f3f3f3f, N = 1e3 + 5, MOD = 1e9 + 7; int T, cas = 0; LL n, m; int main(){ #ifdef LOCAL freopen("/Users/apple/input.txt", "r", stdin); // freopen("/Users/apple/out.txt", "w", stdout); #endif while(scanf("%lld%lld", &n, &m), n + m) { LL tmp = n * m - 1; if(n == 1) { if(m != 1) printf("%lld %lld Impossible\n", n, m); else printf("%lld %lld Multiple\n", n, m); continue; } if(tmp % (n - 1) == 0) printf("%lld %lld %lld\n", n, m, tmp / (n - 1)); else printf("%lld %lld Impossible\n", n, m); } return 0; }
相关文章推荐
- 一铭软件发布新战略迈入共享开源经济时代
- OS 9采用率增速放缓 11月增加4个百分点至70%
- 系统内存管理
- Microsoft Windows 7专业版深圳降价
- Tsinsen-1486:树【Trie树 + 点分治】
- splay初步
- 开源项目XUtils实现多线程下载
- RF+Jenkins构建持续集成
- [软件人生]关于同行竞业,你需要知道,你需要关注-2实例
- Fitbit仍为可穿戴设备龙头老大 苹果屈居第二
- 微软放弃手机版win10 技术支持时间表曝光
- 杭电ACM1250——Hat's Fibonacci
- Java 导入包正确依旧报错的处理方法
- 2015互联网秋招总结--后台开发岗位
- 使用jad批量反编译.class文件
- android studio 更新 Gradle错误解决方法
- 不通过App Store实现ios应用分发下载安装
- 针对博客的9款免费营销工具
- IIS 访问Json文件
- 杭电ACM1131——Count the trees