码迷,mamicode.com
首页 > 其他好文 > 详细

2015安徽省赛 B.求和

时间:2015-07-31 17:45:52      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

对于正整数n,k,我们定义这样一个函数f,它满足如下规律

技术分享 

现在给出nk,你的任务就是要计算f(n,k)的值。

 

输入

首先是一个整数T,表示有T组数据 接下来每组数据是n和k(1<=n,k<=108)

输出

打印出f(n,k)的值,每个输出单独占一行

样例输入

3 1 1 2 1 3 1

样例输出

-1 1 -2

找到规律即可。
 1 #include <iostream>
 2 #include <stdio.h>
 3 int main()
 4 {
 5     using namespace std;
 6     long long c,i,j=1,m,n,t=0,rankl=0;
 7     int a;
 8     scanf("%d",&a);
 9     while(scanf("%lld%lld",&m,&n)!=EOF){
10         if(m==1&&n==1){printf("-1\n");}
11         else{
12         c=m/(2*n);
13         rankl=n*c*n;
14         for(i=2*n*c+1;i<=m;i++)
15         {
16             t++;
17             if(t>n)
18             {
19                 j++;
20                 t=1;
21             }
22             if((j+2)%2==0)
23             {
24                 rankl=rankl+i;
25             }
26             else
27             {
28                 rankl=rankl-i;
29             }
30         }
31         printf("%lld\n",rankl);
32         t=0;rankl=0;j=1;
33     }}
34     return 0;
35 }
36 /**************************************************************
37     Problem: 1206
38     User: 2014217052
39     Language: C++
40     Result: 正确
41     Time:614 ms
42     Memory:1504 kb
43 ****************************************************************/

 

2015安徽省赛 B.求和

标签:

原文地址:http://www.cnblogs.com/dzzy/p/4692594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!