cf 151 C. Win or Freeze (博弈 求大数质因子)
题意:
给一个数N,两人轮流操作
每次将N变为一个N的非1非自身的因数,第一个无法进行操作的人获胜
问先手是否有必胜策略,如果有的话在第二行输出第一步换成哪个数,如果第一步就不能操作则输出0
数据规模:N≤10^13。
思路:
当N为1或者质数时,先手胜且输出0
当N恰为两个质数的乘积时,先手负,因为他必须写下一个质数,使后手获胜
其他情况下,他只要写下N的任意两个质因数的乘积就能获胜。
#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
using namespace std; int main()
{
long long i;
long long q;
vector<long long>v;
while(cin>>q)
{
v.clear();
for(i = ; i*i <= q; i++)
while(q%i==)
{
v.push_back(i);
q /= i;
}
if(q>)
v.push_back(q); if(v.size()<)
printf("1\n0\n");
else if(v.size()==)
printf("2\n");
else
printf("1\n%d\n", v[]*v[]);
}
return ;
}
求一个数的质因数的模板:
可能有重复的, 如输入8 会输出:2 2 2;
也有可能只有自身,如输入11 输出11
但是v数组里的数的乘积就等于 输入的数字。
#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
using namespace std; int main()
{
long long i;
long long q;
vector<long long>v;
while(cin>>q)
{
v.clear();
for(i = ; i*i <= q; i++)
while(q%i==)
{
v.push_back(i);
q /= i;
}
if(q>)
v.push_back(q); for(i = ; i < v.size(); i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}
return ;
}
cf 151 C. Win or Freeze (博弈 求大数质因子)的更多相关文章
- Pollard-Rho算法求大数质因子
/* * 大整数分解到现在都是世界级的难题,但却是一个重要的研究方向,大整数在公共密钥的研究上有着重要的作用 * Pollard Rho算法的原理就是通过某种方法得到两个整数a和b.而待分解的大整数为 ...
- NYOJ-476谁是英雄,分解质因子求约数个数!
谁是英雄 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不 ...
- 快速求n的质因子(数论)
快速求n的质因子 如何尽快地求出n的质因子呢?我们这里又涉及两个好的算法了! 第一个:用于每次只能求出一个数的质因子,适用于题目中给的n的个数不是很多,但是n又特别大的 #include<std ...
- POJ2992:Divisors(求N!因子的个数,乘性函数,分解n!的质因子(算是找规律))
题目链接:http://poj.org/problem?id=2992 题目要求:Your task in this problem is to determine the number of div ...
- 求n的因子个数与其因子数之和
方法一:朴素算法:O(n). #include<bits/stdc++.h> using namespace std; int get_num(int n){ ; ;i<=n;++i ...
- 【UVA1378】A Funny Stone Game (博弈-求SG值-输出方案)
[题目] Description The funny stone game is coming. There are n piles of stones, numbered with 0, 1, 2, ...
- HDU1850 尼姆博弈求可行方案数目
尼姆博弈(Nimm's Game) 题型 尼姆博弈模型,大致上是这样的: 有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限,最后取光者得胜. 分析 1.首先自己想一下 ...
- CF Gym 100463A (树状数组求逆序数)
题意:给你一个序列,和标准序列连线,求交点数. 题解:就是求逆序对个数,用树状数组优化就行了.具体过程就是按照顺序往树状数组了插点(根据点的大小),因为第i大的点应该排在第i位,插进去的时候他前面本该 ...
- CF E2 - Daleks' Invasion (medium) (LCA求两点树上路径上的最大边权)
http://codeforces.com/contest/1184/problem/E2 题意:给出一副图,首先求出这幅图的最小生成树 , 然后修改这幅图上不属于最小生成树的边权,使得修改后的图在求 ...
随机推荐
- div+css登陆界面案例2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- cocos中BatchNode精灵集合的使用
1.CCSpriteBatchNode是为了提高渲染效率而实现的,它继承自CCNode 2.fps:帧率,是游戏中衡量流畅度的一个很重要的概念,cocos中默认的帧率是60,即一秒刷新60帧 3.精灵 ...
- 一点ASP.NET MVC Html.Helper类的方法
一点ASP.NET MVC Html.Helper类 这里就只写一个Html.ActionLink()和Html.DropdownList(). Html.ActionLink()里有三个参数,第一个 ...
- check environment var
田+R cmd set XXX check environment var
- HDU4276 The Ghost Blows Light SPFA&&树dp
题目的介绍以及思路完全参考了下面的博客:http://blog.csdn.net/acm_cxlove/article/details/7964739 做这道题主要是为了加强自己对SPFA的代码的训练 ...
- POJ 1182 食物链(种类并查集)
记得第一次做这道题的时候,推关系感觉有点复杂,而且写完代码后一直WA,始终找不出错误. 在A了十几道并查集后,再做这道题,发现太小儿科了.发现原来之所以WA,就在于查找根节点时,没有同步更新子节点相对 ...
- java基础知识回顾之---java String final类 容易混淆的java String常量池内存分析
/** * 栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放 在常量池中). 堆(heap):存 ...
- PhotoSwipe简介(PhotoSwipe是一个适合在触摸屏手机上使用的相册展示包)
官方介绍PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone.iPad.黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品 ...
- 搭建网站 discuzx ecshop php
1.http://www.comsenz.com/downloads/install/discuzx下载
- NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
解决办法: http://stackoverflow.com/questions/4037125/namespace-err-an-attempt-is-made-to-create-or-chang ...