发一下牢骚和主题无关:
题目粗心: t 组测试,每组测试有 n 个数(1~n),有 k 次循环,每次取出第k小的数,求所有取出的数字之和。
每日一道理 这浓浓的母爱使我深深地认识到:即使你是一只矫健的雄鹰,也永远飞不出母爱的长空;即使你是一条扬帆行驶的快船,也永远驶不出母爱的长河!在人生的路上不管我们已走过多远,还要走多远,我们都要经过母亲精心营造的那座桥!
#include#include #include #include #include #define SIZE 262145using namespace std;int array[SIZE<<1];void creat(int left,int right,int root){ int m; array[root] = right-left+1;//每一个节点记载包括的数字个数 if(left == right){ return; } m=(right+left)/2; creat(left,m,root<<1); //array[root]的左孩子为array[2*root] creat(m+1,right,root<<1|1); //array[root]的右孩子为array[2*root+1]}int Del(int left,int right,int root,int key){ int m,flag; array[root]--; if(left == right){ return right; } m=(right+left)/2; if(key<=array[root<<1]){//左子树的叶子节点数大于key flag=Del(left,m,root<<1,key); } else{ key-=array[root<<1];//在右子树中找,key要减去左子树包括的叶子节点数 flag=Del(m+1,right,root<<1|1,key); } return flag;}int main(){ int t,n,k,kk,i,j; long long sum; scanf("%d",&t); for(i=1;i<=t;i++){ sum=0; scanf("%d%d",&n,&k); creat(1,n,1); for(j=0;j
文章结束给大家分享下程序员的一些笑话语录: 一程序员告老还乡,想安度晚年,于是决定在书法上有所造诣。省略数字……,准备好文房4宝,挥起毛笔在白纸上郑重的写下:Hello World