HDU4861(Couple doubi)

题目地址:Couple doubi

题目大意:

桌上有K个球,有一公式Every ball has a value and the value of ith (i=1,2,...,k) ball is 1^i+2^i+...+(p-1)^i (mod p)  。p是一个素数(3.5.7....)。doubinan和doubixp,每人依次取一个球计算其球的value的总和sum比较谁赢。nan先取如果赢输出YES否则NO。

解题思路:

找规律,把p为3,k为1-10的胜负情况罗列出来和p为5,k为1-10,和p为7,k为1-10。

会发现p=3的结果(0202020202)p=5(00040004)p=7(五个0和一个数)。所以把yes和no写出来,规律很容易发现

假设p=7,K<=6的胜负情况都是NO,K>=7的胜负情况是7个一组的循环。

代码:

 1 #include <algorithm>
 2 #include <iostream>
 3 #include <sstream>
 4 #include <cstdlib>
 5 #include <cstring>
 6 #include <cstdio>
 7 #include <string>
 8 #include <bitset>
 9 #include <vector>
10 #include <queue>
11 #include <stack>
12 #include <cmath>
13 #include <list>
14 //#include <map>
15 #include <set>
16 using namespace std;
17 /***************************************/
18 #define ll long long
19 #define int64 __int64
20 #define PI 3.1415927
21 /***************************************/
22 const int INF = 0x7f7f7f7f;
23 const double eps = 1e-8;
24 const double PIE=acos(-1.0);
25 const int d1x[]= {0,-1,0,1};
26 const int d1y[]= {-1,0,1,0};
27 const int d2x[]= {0,-1,0,1};
28 const int d2y[]= {1,0,-1,0};
29 const int fx[]= {-1,-1,-1,0,0,1,1,1};
30 const int fy[]= {-1,0,1,-1,1,-1,0,1};
31 const int dirx[]= {-1,1,-2,2,-2,2,-1,1};
32 const int diry[]= {-2,-2,-1,-1,1,1,2,2};
33 /*vector <int>map[N];map[a].push_back(b);int len=map[v].size();*/
34 /***************************************/
35 void openfile()
36 {
37     freopen("data.in","rb",stdin);
38     freopen("data.out","wb",stdout);
39 }
40 priority_queue<int> qi1;
41 priority_queue<int, vector<int>, greater<int> >qi2;
42 /**********************华丽丽的分割线,以上为模板部分*****************/
43
44 int main()
45 {
46     int k,p;
47     while(scanf("%d%d",&k,&p)!=EOF)
48     {
49         int sum1=p-2,sum2;
50         if(k<=sum1)
51         {
52             printf("NO\n");
53         }
54         else
55         {
56             sum2=k/(sum1+1);
57             if (sum2%2)
58                 printf("YES\n");
59             else
60                 printf("NO\n");
61         }
62     }
63     return 0;
64 }

HDU4861(Couple doubi)

时间: 2024-11-15 03:49:43

HDU4861(Couple doubi)的相关文章

HDU 4861(多校)1001 Couple doubi

Problem Description DouBiXp has a girlfriend named DouBiNan.One day they felt very boring and decided to play some games. The rule of this game is as following. There are k balls on the desk. Every ball has a value and the value of ith (i=1,2,...,k)

hdu4861(游戏)

数论问题:试题 题目没有看懂,但是解题方法感觉的确是非常巧妙的,应该是属于数论一方面的试题. 试题分析: 首先是DouBiNan先取,所以肯定优先选取剩余中值最大的,于是不存在说DouBiNan值小的情况,只有大于和小于. 然后,对于val(i)=1i+2i+?+(p−1)i%p来说,只有当i=?(p)=p−1(p为素数)时,val(i)=p−1,其他情况下val(i)=0,那么只要确定说有多少个i是非0的即可,如果是偶数则输出NO,奇数输出YES. 证明,假设p有原根g,那么1i,2i,…,(

2014多校联合训练第一场(组队训练)

这是我.potaty.lmz第二次训练,毕竟经验不足,加上水平不够,导致我们各种被碾压. A - Couple doubi: 这道题是道比较水的数论.但我们都没想出来要怎么做.后来是potaty提议打个表看看,然后lmz打出表后发现了规律.我还没细看,待研究后再补全. D - Task: 这道题一看就知道是个贪心(现在只要是有deadline的题我都觉得是贪心了).虽然想出来了,但还是不会严格证明为什么只要取满足task的且y最小(y相等时x最小)的machine就行了. 我的做法是把所有mac

华为交换机配置telnet和SSH登录设备(简单实用版)

Telnet是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,极大的提高了用户操作的灵活性. 测试拓扑图 配置telnet: 1.1普通认证登录

Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器

VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作. 在内存分析上,Java VisualVM的最大好处是可通过安装Visual GC插件来分析GC(Gabage Collection)趋势.内存消耗详细状况. 一  Visual GC(监控垃圾回收器) Java Visu

静态网页框架设计首次体验(文章改)

根据教材与上网成功解决了Tomcat与Myeclipse的安装,同时熟悉了Java web创建项目到部署运行整个过程.今天起正式开始学习有关Java web的编程部分.Java web静态网页(HTML网页)的标记含义.基本语法的介绍到框架设计基本模板与案例,今天的学习的内容,让网页编程有了一个初步的框架.结合自身所在协会的情况,计划制作一个关于协会的网页,已有初步想法,望通过学习不断完善和修改协会网站.根据今天所学,并参考书本30页框架设计案例对网页进行初步搭建. 具体代码如下 TW.jsp:

Windows10 使用Virtual Box一启动虚拟机就蓝屏(错误代码SYSTEM_SERVICE_EXCEPTION)解决方案

原文:Windows10 使用Virtual Box一启动虚拟机就蓝屏(错误代码SYSTEM_SERVICE_EXCEPTION)解决方案 一打开虚拟机电脑就立马蓝屏重启,新建虚拟机也没用,然后就开始百度,百度上全说什么驱动不对,然后我就卸载升级各种驱动,然后各种重装VirtualBox,还是不行,搞了一两个小时,都快放弃了.决定上个google,终于看到一篇文章说是因为Hyper-V与Virtual Box冲突了,只需要在控制面板关闭就行.然后抱着试一试的心态. 首先我们先打开控制面板.按Wi

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

UWP-消息提示(仿Android)

原文:UWP-消息提示(仿Android) 在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那种提示框. 先说说比较简单的吧,通过系统Toast通知方式(和Android的Toast是有区别的额,更像Android里的Notification),关于这种方式,在这里就不贴代码了,MSDN上讲的很清楚(快速入门:发送 Toast 通知),需要注意的事作为应用内消息提示弹出框,应该不要带音效(有