CF337C - Quiz
/*题目大意,给出n道题,假设答对了m道题,求最小的分数,有一个规则,就是连续答对num==k道题那么分数就翻倍,然后num清零,从新开始计数,到大连续k道的时候
要先加上这道题的分数1,再乘以2,
做法:先将n中排出n/k个块,然后分类讨论,当n/k<=(n - m)时,那么说明有n/k个块,因为要连续对k-1道题错一道,所以假设其中错的那道题是一个空格,
如果满足n/k<=(n-m),,即n-m表示答错的题目的个数,说明m个数之间有足够的错误题目来隔开,那么就保证了m道题都在n/k个块中,那么答案就是m,当n/k>n-m那么说明n/k个块之间有些不能隔开,就是会出现连续的答对超过k的情况
所这种情况,采用插空法,每次插一个空分数就会翻倍,当插入一个空,那么分数是2*k,第二个是(2*k+k)*2 =2*k+4k,到第三个的时候总分是2k+4k+8k
以此类推,那么如果剩下的数目是remin,那么就要插remin个空,根据等比数列求和公式;结果是k*2*(2^(remin)-1)表示插入最后一个是所得的分数,那么再加上后面的分数
结果就是k*2*(2^(remin)-1)+m-k*renin
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const __int64 mod=;
__int64 exp(__int64 a,__int64 n)
{
__int64 t;
if(n==) return %mod;
if(n==) return a%mod;
t=exp(a,n/);
t=t*t%mod;
if( (n&)==) t=t*a%mod;
return t;
}
int main()
{
__int64 n, m, k,ok, ans;
while(scanf("%I64d%I64d%I64d",&n,&m,&k)!=EOF)
{
if(n < k * (n - m + ))
printf("%I64d", m); else
{
ok = n / k - n + m;
ans = ((k * (exp(, ok + ) - )) % mod + m-ok*k+ mod) % mod;
printf("%I64d", ans);
}
}
return ;
}
CF337C - Quiz的更多相关文章
- XSS quiz练习题做题过程及感悟
XSS quiz 最近刚学XSS.所以新手理解如有错误不当,欢迎批评指正. 第1题 一开始做,使用了Chrome浏览器.第一题怎么都做不出来.突然想起来使用IE,打开IE11,才成功了. <sc ...
- Quiz(贪心,快速幂乘)
C. Quiz time limit per test 1 second memory limit per test 256 megabytes input standard input output ...
- ruby quiz The Solitaire Cipher
solitaire cipher:http://en.wikipedia.org/wiki/Solitaire_(cipher) https://www.schneier.com/solitaire. ...
- codeforces 337C Quiz(贪心)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Quiz Manao is taking part in a quiz. The ...
- uva 10911 - Forming Quiz Teams(记忆化搜索)
题目链接:10911 - Forming Quiz Teams 题目大意:给出2 * n个选手的坐标, 要求将所有的选手分成n组, 每组两个人, 所有组的两个人之间的距离之和要最小, 输出最小值. 解 ...
- UVA 10911 Forming Quiz Teams(dp + 集合最优配对问题)
4th IIUC Inter-University Programming Contest, 2005 G Forming Quiz Teams Input: standard input Outpu ...
- mysql----JOIN Quiz
JOIN quiz game id mdate stadium team1 team2 1001 8 June 2012 National Stadium, Warsaw POL GRE 1002 8 ...
- mysql----Nested SELECT Quiz
Nested SELECT quiz bbc name region area population gdp Afghanistan South Asia 652225 26000000 Alb ...
- W3Schools SQL Quiz
W3Schools SQL Quiz SQL QUIZ Points: 25 out of 25 1. What does SQL stand for? You answered: Structure ...
随机推荐
- #error和line
#error message ----注:message不需要用双引号包围, #error 编译指示字用于自定义程序特有的编译错误消息类似的, #warning用于生成编译警告,但不会停止编译. 在l ...
- 说说FATFS文件系统(转)
FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块.FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开.因此,它独立(不依赖)于硬件 ...
- vuejs开发环境搭建
前言:现在前端最火的是3个框架:react,vue,angular.可以说着是哪个框架大大改变了前端的地位.相对于angular来说.vue同样拥有丰富的指令,并且都是典型的MVC框架,但是vue比较 ...
- canvas一:基本认识
最近弄数据库弄得头大,想着没事整理一下画布canvas吧,毕竟canvas用途广泛,是html游戏开发必不可少的一环,也是h5新特性中的重中之重 首先canvas是一个html标签,可以给他设置一些c ...
- jQuery子页面获取父页面元素
$("input[type='checkbox']:checked",window.opener.document);//适用于打开窗口的父页面元素获取 $("input ...
- Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取
为什么要写这篇文章 1. 因为最近在学习<软件调试>这本书,看到书中的某个调试历程中讲了Windows的系统调用的实现机制,其中讲到了从Ring3跳转到Ring0之后直接进入了K ...
- Androidの共享登录之方案研究
由于最近公司提到了一个需求是,一个应用登录成功了,另一个自动登录. 绞尽脑汁想了好几天,看起来很容易但是想深点就漏洞百出,有的时候代码都写完了测试都成功了突然发现给一个假设就完全失效. 先前几个同事之 ...
- 本地schemeApp扩展
作者:ani_di 版权所有,转载务必保留此链接 http://blog.csdn.net/ani_di 本地schemeApp扩展 iHasApp这个用过的话,大概知道我说的是什么了. scheme ...
- c++虚函数[转]
C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父 ...
- 1.border-image
1.设置在元素围绕的border的图片,用图片代替边框 语法: broder-image-source:图片 border-image-slice:切下的区域,数字|百分比(相对于图像的高度和宽度) ...