手机网站效果图做多大的,保险平台官网,wordpress内存溢出,温州网页设计公司cf地址
题目大意#xff1a;给一个数n#xff0c;有1~n的数#xff0c;每次现在两个数a#xff0c;b#xff0c;将这两个数去掉#xff0c;然后添加一个#xff08;ab#xff09;/2的数#xff08;向上取整#xff09;#xff0c;进行n-1次操作后#xff0c;问你最…cf地址
题目大意给一个数n有1~n的数每次现在两个数ab将这两个数去掉然后添加一个ab/2的数向上取整进行n-1次操作后问你最后剩下的数最小是多少。
思路最小的数必定为2每次选择最大的那两个数最后会剩下13 答案就是2不可能更小了因为1和任意一个大于1的正整数相加除二 再向上取整最小值就为2 简单思维题 代码
#includebits/stdc.h
#define INF 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define re register
#define lson rt1
#define rson rt1|1
#define lowbit(a) ((a)-(a))
#define ios std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
#define fi first
#define rep(i,n) for(int i0;(i)(n);i)
#define rep1(i,n) for(int i1;(i)(n);i)
#define se secondusing namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pairint,int pii;
int dx[4] {-1,1,0,0},dy[4] {0,0,1,-1};
const ll mod10;
const ll N 2e610;
const double eps 1e-4;
const double piacos(-1);
ll gcd(int a,int b){return !b?a:gcd(b,a%b);}
ll a[N];int main()
{iosint t;cint;while(t--){int n;cinn;ll sm0;sm(1n)*n/2;cout2endl;coutn-1 n\n;for(int in-2;i1;i--)couti i2\n;}return 0;
}