POJ-Crazy tea party,很好的一道数学题~~~
Time Limit: 1000MS | Memory Limit: 10000K | |
Description
right - left).
Input
Output
Sample Input
3
4
5
6
Sample Output
2
4
6
Source
题意很简单,n个人(1~n)围坐在一张桌子上,每分钟相邻两个人可以互换位置,求最少需要几分钟使得顺序变为逆序;
貌似普通思路没什么突破点,单纯找规律也找不出,但是我们可以发现题目只要求最后顺序为逆序,但没有指明位置不可以变;假如有5个人:1 2 3 4 5;变换之后是 3 2 1 5 4;明白了吧,结果只要是逆序排列就可以了,开始编号为1的人的位置可以任意,但一旦确定1的位置两边的位置就已经确定;假如最后1在编号为k的位置上,那么最后k就在开始编号为1的位置上,顺序就变成了:k~1、n~k+1;这样也是逆序的;
我们知道一个冒泡排序需要变换n*(n-1)/2;这里就可以分为两部分,1~k变换,需要变换k*(k-1)/2,剩下的n-k个数需要变换(n-k)*(n-k-1)/2;总共就是k*(k-1)/2+(n-k)*(n-k-1)/2;分解变成:k^2-nk+(n*n-n)/2;n为人数已知,求这个二元方程的最小值用(4ac-b^2)/4a;得答案为n/2*(n/2-1);但对于n的奇偶未知,思路已经提供到这了,奇偶问题应该不难解决;看代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n%2==0)
printf("%d\n",n/2*(n/2-1));
else
printf("%d\n",n/2*((n+1)/2-1));
}
return 0;
}
POJ-Crazy tea party,很好的一道数学题~~~的更多相关文章
- POJ 2002 Squares【值得摸索的一道二分+点旋转】
id=2002">Squares 很好的一道二分,事实上本来我是没有思路的,看了基神的题解之后才似乎明确了点. 题意:给出最多有1000个点,问这些点能够组成多少个正方形 分析:先想想 ...
- poj 1455 Crazy tea party
这道题第一眼看去很难,其实不然,短短几行代码就搞定了. 说一下大概思路,如果是排成一排的n个人,如 1 2 3 4 5 6 7 8 我们要变成 8 7 6 5 4 3 2 1 需要交换 28次,找规律 ...
- zoj 1730 / poj 1455 Crazy Tea Party
这阵子都没怎么写代码,由于开学,忙于各种琐碎的事情,现在静下来了开始跟着暑假的节奏刷题了. 这道题一开是没看清题目-在寝室刷题就是效率不高... 后来才知道,题目意思是,一个环形序列,1minute可 ...
- 想了很久,一道Microsoft的笔试题目 —— Reversing Linked List
Reversing Linked List Given a constant K and a singly linked list L, you are supposed to reverse the ...
- HDU 3038 How Many Answers Are Wrong 很有意思的一道并查集问题
题目大意:TT 和 FF玩游戏(名字就值五毛),有一个数列,数列有N个元素,现在给出一系列个区间和该区间内各个元素的和,如果后出现的一行数据和前面一出现的数据有矛盾,则记录下来.求有矛盾数据的数量. ...
- poj 3411 Paid Roads很水的DFS
题意:给你N 城市和M条道路,每条道路要付的钱,但是如果你在这个道路上你可以付其他道路的钱(跟走到的时候去的话不一样),问你从1走到N最少话费是多少. 直接DFS搜. 链接http://poj.org ...
- POJ 1949 Chores (很难想到的dp)
传送门: http://poj.org/problem?id=1949 Chores Time Limit: 3000MS Memory Limit: 30000K Total Submissio ...
- 2013 ACM区域赛长沙 I LIKE vs CANDLE(ZOJ3734) 很好的一道树形DP
题意:一棵有根树,每个节点都有一个value值和属性(zan或是 CANDLE).你可以通过反转一些点的属性,反转一个点时候,它的整个子树都会被反转属性.有些点反转消耗代价为X,有些为Y.你的目标的是 ...
- ZOJ Problem Set - 1730 Crazy Tea Party
#include<cstdio> int main(){ int T,n; scanf("%d",&T); while(T--){ scanf("%d ...
随机推荐
- iOS7改变状态栏文字颜色
1在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO2 在需要改变状态栏颜色的 AppDelegate中在 didFinishLaun ...
- webkit滤镜
-webkit-filter: grayscale(1);/*灰度*/ -webkit-filter: sepia(1);/*褐色*/ -webkit-filter: saturate(1);/*饱和 ...
- solr 查询获取数量getCount()
//前期设置好查询条件和参数 long numFound = 0; SolrQuery query = new SolrQuery("*:*"); query.setQuery(& ...
- 【js】js导出表格到excel
js: function method(tableid) //读取表格中每个单元到EXCEL中 { var curTbl = document.getElementById(tableid); var ...
- 设计 REST API 的13个最佳实践
写在前面 之所以翻译这篇文章,是因为自从成为一名前端码农之后,调接口这件事情就成为了家常便饭,并且,还伴随着无数的争论与无奈.编写友好的 restful api 不论对于你的同事,还是将来作为第三方服 ...
- iOS开发-Runtime详解
iOS开发-Runtime详解 简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的.比如: [recei ...
- DAX:New and returning customers
The New and Returning Customers pattern dynamically calculates the number of customers with certain ...
- 微信小程序开发系列五:微信小程序中如何响应用户输入事件
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- Graveyard LA3708
白书第一章例题4 思维. 先固定一点不动,假设最后一共N个点,那么编号为0,1,...N-1, 0不动,原来的n个点分别占据i/n*N的位置(记为pos),移动到pos四舍五入的位置即可. 证明一:有 ...
- github 新建一个仓库后
每次都记不住命令,记一下,防止找不到 echo "# learn18" >> README.md git init git add README.md git comm ...