Codeforces Round #334 (Div. 2)
2015-12-09 10:18
363 查看
这次题目挺有意思的,可惜D题差几分钟没交对。E题的博弈还是很基础的SG函数,让我复习了下博弈。
A - Uncowed Forces
基本的输入输出,一个公式输出来即可,但是要注意的是,写之前先化简变成全为整数的情况。
View Code
E - Lieges of Legendre
我在开始想这题的时候,忘了sg函数,想凭找规律找到结果。 结果我想多了,对于一半的情况是可以找规律的,但是另一半我是始终没找出来,我想如果聪明人应该还是可以通过规律做出这题。通过这题我也知道挂不得区域赛什么的,博弈题很少,因为博弈题套路固定,而且基本上就那几种特殊的博弈。巴什,威佐夫,nim。难的估计太难大家又不会了。o(╯□╰)o
像我一样,忘记sg函数的或者还不会的可以看这里:博弈SG函数
知道了SG函数后,这题其实只需要分k为奇偶的情况先定义好f(1),f(2),f(3)。然后就是普通求SG函数的套路,因为数据量达到10^9,所以有些情况可以优化下。
A - Uncowed Forces
基本的输入输出,一个公式输出来即可,但是要注意的是,写之前先化简变成全为整数的情况。
#include <iostream> #include <stdio.h> using namespace std; #define MOD 1000000007 int g[1001000]; int mark[1001000]; int main(int argc, const char * argv[]) { int p,k; cin>>p>>k; if(k==0) { long long ans=1; for(int i=1;i<p;i++) ans=ans*p%MOD; cout<<ans; return 0; } for(int i=0;i<p;i++) { g[i] = ((long long)i*k)%p; } long long ans=1; for(int i=0;i<p;i++) { if(mark[i]) continue; mark[i]=1; long long tmp=1; int ti = g[i]; while(ti!=i) { mark[ti]=1; tmp++; ti=g[ti]; } long long tk=1; for(int j=0;j<tmp;j++) tk=(tk*k)%p; if(tk==1) ans=ans*p%MOD; else ans*=1; } cout<<ans; return 0; }
View Code
E - Lieges of Legendre
我在开始想这题的时候,忘了sg函数,想凭找规律找到结果。 结果我想多了,对于一半的情况是可以找规律的,但是另一半我是始终没找出来,我想如果聪明人应该还是可以通过规律做出这题。通过这题我也知道挂不得区域赛什么的,博弈题很少,因为博弈题套路固定,而且基本上就那几种特殊的博弈。巴什,威佐夫,nim。难的估计太难大家又不会了。o(╯□╰)o
像我一样,忘记sg函数的或者还不会的可以看这里:博弈SG函数
知道了SG函数后,这题其实只需要分k为奇偶的情况先定义好f(1),f(2),f(3)。然后就是普通求SG函数的套路,因为数据量达到10^9,所以有些情况可以优化下。
相关文章推荐
- 夺命雷公狗---javascript NO:27 通过json调用12306查询车次信息
- PHP程序员如何理解IoC/DI(转)
- ActionBar自定义布局
- intellij 快捷键说明
- Oracle建立实例时报【ORA-12638: 身份证明检索失败解决方法】错误的解决方法
- 欢迎使用CSDN-markdown编辑器
- 阿里巴巴开源项目 Druid
- 【转载】H264编码原理以及I帧、B帧、P帧
- 给jquery easy-ui 添加右键菜单
- spark环境下实现 CountOnce(NumOnce)
- JSON for java入门
- Eclipse自动编译NDK/JNI的三种方法
- android 客户端和网站交互数据的实现
- TimerTask、Quartz、Spring-Task 详解
- SCOPE_IDENTITY的用法【转载】
- 夺命雷公狗---javascript NO:26 json数据格式
- java生成短8位uuid
- android java.io.IOException: open failed: EBUSY (Device or resource busy)
- Handler常见问题
- [CSS3] Flexbox