找中位数即可
/*
时间会慢慢过去。
或许有一天,土味北子哥放下了花大杀手的头衔,回到河北的家里盖着钱当个安静的河北首富。
或许有一天,博爱哥哥不再是按时更新的汤达人,偶尔发着一路拍的3个vlog,当回贵阳的猴王瀚哲。
或许有一天,老番茄最终离开了牛逼的复旦,带着母哥和戴安娜,去看婷哥和AJ看过的夕阳,做个红切黑的史上最强。
或许有一天,某幻也能喝上几杯家乡的啤酒,唱着rap,做着青岛教父,迈过八角笼去找另一个垭口,但还是那个不会死的马了顶大。
或许有一天,蕾丝再没有一个月八个商单的神迹,风中蟾蜍和翘首以盼也成为过去,看着烂片,摸着金闪闪和小智,不再看着恶评和谩骂,拜托了这对他真的很重要。
而我们,或许也会成长成曾经期待里的大人。读书,学习,工作,找一个自己喜欢的人组成家庭。慢慢的习惯阴阳怪气不在的日子,成就着自己的人生。
但我们不会忘记那些相伴的日子,忘不掉那个我最好的兄弟,忘不掉被烫屁股的团欺,忘不掉“周游世界,翱翔太宇”,忘不掉没长出头发的47,忘不掉马儿娇娇的中文八级,忘不掉那个总是先走了的帝中帝。
忘不掉我们的青春里,有这样一群发着光的,欢天喜地好哥们。
追着光行走的我们,也在成为别人眼里的光。
热爱所向披靡,那就欢天喜地。
*/
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
const int INF = 0x3f3f3f;
const double eps = 0.01;
const int maxn=1e6+10;
const int mod=1000000007;
int N,M,K; int ans = 0;
int a[100001];
// int index;
void fun()
{
int index;
OldTomato
cin >> N;
for(int i =0;i<N;++i)
{
cin>>a[i];
}
sort(a,a+N);
index = N/2;
int ans = 0;
for(int i=0;i<N;++i)
{
ans += abs(a[index] - a[i]);
}
cout<<ans<<endl;
}
int main(void)
{
fun();
return 0 ;
}
/*
4
6 2 9 1
*/
不造为什么用dfsWA了QAQ,可能是边界处理的不太行,而且时间复杂度太高了.从上往下走比较麻烦,要对边界特殊处理.丛下往上走,可以不考虑边界,比较容易。
某点的值 = 该点的值 + 最长的路径,最长路径可以用另一个数组来记录,也可以用原数组,直接把底下的加上去。
比如,该题从倒数第二行更新。4 = 4+20,5 = 5+7,8 = 8+6. 7 = 7+max(24,12),10 = 10 + max(12,14).
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
const int MAX = 0x3f3f3f;
int N;
int a[501][501],sum = 0,ans = -777777;
void fun()
{
cin>>N;
for(int i = 1;i<=N;++i)
{
for(int g = 1;g<=i;++g)
{
cin>>a[i][g];
}
}
for(int i = N-1;i>0;--i)
{
for(int g=1;g<=i;++g)
{
a[i][g] += max(a[i+1][g],a[i+1][g+1]);
}
}
cout<<a[1][1]<<endl;
}
int main(void)
{
fun();
return 0 ;
}
/*
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
*/
/*
10
-6
-4 -5
-3 7 5
3 7 -2 1
10 2 -6 2 -6
-8 3 8 6 7 9
-4 -10 0 -3 4 9 2
0 5 5 5 10 -6 -5 -4
-9 7 4 9 8 -5 -2 3 2
-7 -4 0 -10 -8 -4 3 -5 8 9
*/
数组模拟题,题目暗示走贪吃蛇路线.刚开始写的是一个for循环套小循环,但是有bug,如果是方阵能过,一般的矩阵会有bug。所以采用了题解带lao的贪吃蛇走法.向右向下向左向上,然后走下一个小圈.
/*
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,
b站直播才刚开始,陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,
b站恰逢这时候迎来了十周年,发生了很多事,
我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
int N,M;
int a[101][101];
void fun()
{
OldTomato
cin>>N>>M;
memset(a,0,sizeof(a));
int x=1,y=1,tot = 2;
a[x][y] = 1;
while(tot <= N*M)
{
while(y < M && !a[x][y+1]) a[x][++y] = tot++; //向右
while(x < N && !a[x+1][y]) a[++x][y] = tot++; //向下
while(y > 1 && !a[x][y-1]) a[x][--y] = tot++; //向左
while(x > 1 && !a[x-1][y]) a[--x][y] = tot++; //向上
}
for(int i=1;i<=N;++i)
{
for(int g=1;g<=M;++g)
{
cout<<a[i][g]<<' ';
}
cout<<endl;
}
return ;
}
int main(void)
{
fun();
return 0;
}
//Witcher,the oldest kill machine.Once we are many,now we are few.
//Among us, a legend character, Geralt of Rivia,The White Wolf.
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
int N,M,x,y,ans;
int dir[4][2] = {
{
-1,0},{
0,1},{
1,0},{
0,-1}};
int a[21][21];
void init()
{
for(int i=0;i<20;i++)
{
for(int g=0;g<20;++g)
{
a[i][g] = -1;
}
}
ans = 0; return ;
}
void dfs(int x,int y)
{
if(a[x][y]==1)
{
a[x][y] = 2;
ans++;
}
for(int i=0;i<4;++i)
{
int tx,ty;
tx = x + dir[i][0];
ty = y + dir[i][1];
if(tx < 0 || ty < 0 || tx >= M || ty >= N || a[tx][ty]!=1) continue; //越界或者不是黑的,不用搜
dfs(tx,ty);
}
}
void fun()
{
while(cin>>N>>M)
{
if(N==0&&M==0) break;
init();
for(int i=0;i<M;++i)
{
for(int g=0;g<N;++g)
{
char c; cin>>c;
if(c=='@') {
a[i][g] = 1; x=i,y=g; } //起始点
else if(c=='.') a[i][g] = 1; //黑
else if(c=='#') a[i][g] = 2; //红
}
}
dfs(x,y);
cout<<ans<<endl;
}
}
int main(void)
{
fun();
return 0;
}
/*
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
0 0
*/
其他进制转十进制好说,十进制转其他进制不好说,不会,但会搜。用短除法.
除出来的余数是转换出的数的转置。一切尽在注释中好叭.
/*
有些人难过,难过的是重点没有上,
而有些人难过,难过的却是本科没有上。
就好像有人为开不起法拉利,穿不起PRADA烦恼,
而有人却为最基本的吃不饱,穿不暖烦恼一样。
我不知道三百多分,四百多分,五百多分,六百多分,甚至那个的省状元。
拿到社会上,究竟会有多少含金量。
也许挑灯夜读,啃物理,啃数学的那些日日夜夜,换来的只是大人们一声或惊或疑的感叹,
也许傲人的高分,得到的也不过是一句赞许,和众多考生的瞻仰。
个中滋味,冷暖自知。
对很多三姑六婆来说,问成绩是一种关心,也是这么多天来最好的一个谈资,
再高的分数也跟他们毫无关系,再低的分数于他们也无关痛痒。
那些真正关心我们的人也许就是那些什么都不说或者是成绩一出来就在宽慰你开导你的那些人。
他们说,高考最迷人的地方不是如愿以偿,而是阴差阳错。
你如愿以偿地考入了自己的理想的学校,却发现自己并不喜欢它,或者并不喜欢所学的专业。
你阴差阳错地调剂到一个专业,却发现自己喜欢的正是这个专业。
你如愿以偿地和初恋共处一个城市,却发现命运阴差阳错地将你们分开。
你阴差阳错地和初恋分开,却发现原来这个城市的这个人,才是你生命中的那个他(她)。
命运就是这么不可揣测,即使你精心计划。
我想社会并不会因为一场考试而判定一个人才。
不管两个月后,我们将身处何方,
不管三年、四年后我们会有怎样翻天覆地的人生际遇,
出了学校,社会会告诉你,原来那些你在乎到夜夜失眠,难受的掉过眼泪的分数并不重要。
社会也会告诉你,出了学校,各凭本事。
我很平淡的接受了这个有些令人尴尬的分数,
难过高兴这些都不重要,重要的是,又一个三年尘埃落定。
我们都是些抓着青春尾巴的人,但我相信,生活并不会因此嫌弃我们,
它会有它最好的安排。
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,b站直播才刚开始,
陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,b站恰逢这时候迎来了十周年,
发生了很多事,我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
const int INF = 0x3f3f3f;
const double eps = 0.01;
const int maxn=1e6+10;
const int mod=1000000007;
int N,M;
string s;
bool check(string s) //判断是否回文
{
int i = 0, j = s.length()-1;
while(i<j)
{
if(s[i]!=s[j])
{
return 0;
}
i++; j--;
}
return 1;
}
int toten(string s) //其他进制转成10进制
{
int sum = 0,base = 1;
for(int i=s.length()-1;i;--i)
{
sum += base*(s[i]-'0');
base *= 10;
}
return sum;
}
char get(int x) //返回相应的字符,大于9的数字用大写字母表示
{
if(x <= 9) return x + '0';
else return x-10+'A';
}
string base(int n,int b) //十进制数n转换成b进制
{
string res;
while(n)
{
res += get(n%b); //b进制,表示AkBk + Ak-1Bk-1 + ... +A0B0(B0也就是1),因为前边的项都是b的倍数,所以n%b是a0,
// 若n/b,则把A1B1变成了A1B0,此时n%b得到了A1,得到了B进制的表示的反向.
n /= b;
}
reverse(res.begin(),res.end());
return res;
}
void fun()
{
cin>>N;
for(int i=1;i<=300;++i)
{
string tmp = base(i*i,N); //平方是否为回文
if(check(tmp))
{
cout<<base(i,N)<<" "<<tmp<<endl;
}
}
OldTomato
return ;
}
int main(void)
{
fun();
return 0;
}
小数二分模板,求右边界,会写,但不造原理,有空再学(拖就硬拖).
/*
有些人难过,难过的是重点没有上,
而有些人难过,难过的却是本科没有上。
就好像有人为开不起法拉利,穿不起PRADA烦恼,
而有人却为最基本的吃不饱,穿不暖烦恼一样。
我不知道三百多分,四百多分,五百多分,六百多分,甚至那个的省状元。
拿到社会上,究竟会有多少含金量。
也许挑灯夜读,啃物理,啃数学的那些日日夜夜,换来的只是大人们一声或惊或疑的感叹,
也许傲人的高分,得到的也不过是一句赞许,和众多考生的瞻仰。
个中滋味,冷暖自知。
对很多三姑六婆来说,问成绩是一种关心,也是这么多天来最好的一个谈资,
再高的分数也跟他们毫无关系,再低的分数于他们也无关痛痒。
那些真正关心我们的人也许就是那些什么都不说或者是成绩一出来就在宽慰你开导你的那些人。
他们说,高考最迷人的地方不是如愿以偿,而是阴差阳错。
你如愿以偿地考入了自己的理想的学校,却发现自己并不喜欢它,或者并不喜欢所学的专业。
你阴差阳错地调剂到一个专业,却发现自己喜欢的正是这个专业。
你如愿以偿地和初恋共处一个城市,却发现命运阴差阳错地将你们分开。
你阴差阳错地和初恋分开,却发现原来这个城市的这个人,才是你生命中的那个他(她)。
命运就是这么不可揣测,即使你精心计划。
我想社会并不会因为一场考试而判定一个人才。
不管两个月后,我们将身处何方,
不管三年、四年后我们会有怎样翻天覆地的人生际遇,
出了学校,社会会告诉你,原来那些你在乎到夜夜失眠,难受的掉过眼泪的分数并不重要。
社会也会告诉你,出了学校,各凭本事。
我很平淡的接受了这个有些令人尴尬的分数,
难过高兴这些都不重要,重要的是,又一个三年尘埃落定。
我们都是些抓着青春尾巴的人,但我相信,生活并不会因此嫌弃我们,
它会有它最好的安排。
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,b站直播才刚开始,
陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,b站恰逢这时候迎来了十周年,
发生了很多事,我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
const int INF = 0x3f3f3f;
const double eps = 0.01;
const int maxn=1e6+10;
const int mod=1000000007;
int N,M,K; int ans = 0;
int a[100001];
bool check(double x) //取代一手a[mid] == target
{
int sum = 0;
for(int i=0;i<N;++i)
{
sum += a[i]/x;
if(sum >= M) return 1;
}
return 0;
}
double Rightbinary()
{
double l = 0, r = 1e9; //[l,r),左闭右开
while( r - l > 1e-4)
{
double mid = (l+r)/2;
if(check(mid))
{
l = mid;
}
else
{
r = mid;
}
}
return r;
}
void fun()
{
OldTomato
cin>>N>>M;
for(int i=0;i<N;++i)
{
cin>>a[i];
}
printf("%.2f\n",Rightbinary());
return ;
}
int main(void)
{
fun();
return 0;
}
/*
3 4
3 5 4
*/
整数二分模板,左右边界都有写,原理不是很清楚,感觉是压缩区间,有空再学QAQ(拖住)
/*
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,
b站直播才刚开始,陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,
b站恰逢这时候迎来了十周年,发生了很多事,
我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
int N,K;
int a[100001],b[100001];
bool check(int x)
{
int sum = 0;
for(int i=0;i<N;++i)
{
sum += (a[i]/x)*(b[i]/x);
if(sum>=K) return 1;
}
return 0;
}
int Leftbinary(int a[],int target)
{
int l =0,r = 100001; //[l,r),压缩右区间
while(l<r)
{
int mid = l+r>>1;
if(a[mid]==target) r = mid;//[l,mid)
else if(a[mid]>target) r = mid; //右开
else if(a[mid]<target) l = mid+1;//左闭
}
return l;
}
int Rightbinary()
{
int l=0,r = 1000001; //[l,r),压缩左区间,得到右边界,次题中为最大边长.
while(l<r)
{
int mid = l+r>>1;
if(check(mid)) l = mid+1; //[mid+1,r)
else r = mid; //[l,mid)
// else if(a[mid]
}
return l-1; // ?
}
void fun()
{
OldTomato
cin>>N>>K;
for(int i=0;i<N;++i)
{
cin>>a[i]>>b[i];
}
cout<<Rightbinary()<<endl;
}
int main(void)
{
fun();
return 0;
}
/*
2 10
6 5
5 6
*/
方法一,暴力就完事了,最多10的6次方罢了,1s的操作不超过10的7次方一般没事.O(NM)
/*
时间会慢慢过去。
或许有一天,土味北子哥放下了花大杀手的头衔,回到河北的家里盖着钱当个安静的河北首富。
或许有一天,博爱哥哥不再是按时更新的汤达人,偶尔发着一路拍的3个vlog,当回贵阳的猴王瀚哲。
或许有一天,老番茄最终离开了牛逼的复旦,带着母哥和戴安娜,去看婷哥和AJ看过的夕阳,做个红切黑的史上最强。
或许有一天,某幻也能喝上几杯家乡的啤酒,唱着rap,做着青岛教父,迈过八角笼去找另一个垭口,但还是那个不会死的马了顶大。
或许有一天,蕾丝再没有一个月八个商单的神迹,风中蟾蜍和翘首以盼也成为过去,看着烂片,摸着金闪闪和小智,不再看着恶评和谩骂,拜托了这对他真的很重要。
而我们,或许也会成长成曾经期待里的大人。读书,学习,工作,找一个自己喜欢的人组成家庭。慢慢的习惯阴阳怪气不在的日子,成就着自己的人生。
但我们不会忘记那些相伴的日子,忘不掉那个我最好的兄弟,忘不掉被烫屁股的团欺,忘不掉“周游世界,翱翔太宇”,忘不掉没长出头发的47,忘不掉马儿娇娇的中文八级,忘不掉那个总是先走了的帝中帝。
忘不掉我们的青春里,有这样一群发着光的,欢天喜地好哥们。
追着光行走的我们,也在成为别人眼里的光。
热爱所向披靡,那就欢天喜地。
*/
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
const int INF = 0x3f3f3f;
const double eps = 0.01;
const int maxn=1e6+10;
const int mod=1000000007;
int N,M,K; int ans = 0;
int a[10001];
void fun()
{
OldTomato
cin>>N>>M; ans = N+1;
memset(a,0,sizeof(a));
while(M--)
{
int x,y;
cin>>x>>y;
for(int i=x;i<=y;++i)
{
if(a[i]==0) //未移除的树
{
a[i] = 1;
ans--;
}
}
}
cout<<ans<<endl;
return ;
}
int main(void)
{
fun();
return 0;
}
/*
500 3
150 300
100 200
470 471
*/
方法二,区间合并,y总。O(MlogM)
先求出所有移动树木的操作的区间的并集,那么马路上剩余部分即为最终剩下树木的部分。
使用区间合并算法,
有空再写.
sort排序,这我熟阿.
/*
有些人难过,难过的是重点没有上,
而有些人难过,难过的却是本科没有上。
就好像有人为开不起法拉利,穿不起PRADA烦恼,
而有人却为最基本的吃不饱,穿不暖烦恼一样。
我不知道三百多分,四百多分,五百多分,六百多分,甚至那个的省状元。
拿到社会上,究竟会有多少含金量。
也许挑灯夜读,啃物理,啃数学的那些日日夜夜,换来的只是大人们一声或惊或疑的感叹,
也许傲人的高分,得到的也不过是一句赞许,和众多考生的瞻仰。
个中滋味,冷暖自知。
对很多三姑六婆来说,问成绩是一种关心,也是这么多天来最好的一个谈资,
再高的分数也跟他们毫无关系,再低的分数于他们也无关痛痒。
那些真正关心我们的人也许就是那些什么都不说或者是成绩一出来就在宽慰你开导你的那些人。
他们说,高考最迷人的地方不是如愿以偿,而是阴差阳错。
你如愿以偿地考入了自己的理想的学校,却发现自己并不喜欢它,或者并不喜欢所学的专业。
你阴差阳错地调剂到一个专业,却发现自己喜欢的正是这个专业。
你如愿以偿地和初恋共处一个城市,却发现命运阴差阳错地将你们分开。
你阴差阳错地和初恋分开,却发现原来这个城市的这个人,才是你生命中的那个他(她)。
命运就是这么不可揣测,即使你精心计划。
我想社会并不会因为一场考试而判定一个人才。
不管两个月后,我们将身处何方,
不管三年、四年后我们会有怎样翻天覆地的人生际遇,
出了学校,社会会告诉你,原来那些你在乎到夜夜失眠,难受的掉过眼泪的分数并不重要。
社会也会告诉你,出了学校,各凭本事。
我很平淡的接受了这个有些令人尴尬的分数,
难过高兴这些都不重要,重要的是,又一个三年尘埃落定。
我们都是些抓着青春尾巴的人,但我相信,生活并不会因此嫌弃我们,
它会有它最好的安排。
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,b站直播才刚开始,
陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,b站恰逢这时候迎来了十周年,
发生了很多事,我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false);
using namespace std;
const int INF = 0x3f3f3f;
const double eps = 0.01;
const int maxn=1e6+10;
const int mod=1000000007;
int N,M,K; int ans = 0;
struct Node
{
int a,b,c,id;
}sa[301];
bool cmp(const struct Node &aa,const struct Node &bb)
{
if(aa.a+aa.b+aa.c != bb.a + bb.b + bb.c) //总分不同
{
return aa.a+aa.b+aa.c > bb.a + bb.b + bb.c;
}
else if(aa.a != bb.a) //语文不同
{
return aa.a > bb.a;
}
else //学号小
{
return aa.id < bb.id;
}
}
void fun()
{
OldTomato
cin>>N;
for(int i=1;i<=N;++i)
{
cin>>sa[i].a>>sa[i].b>>sa[i].c;
sa[i].id = i;
}
sort(sa+1,sa+N+1,cmp);
for(int i=1;i<=5;++i)
{
cout<<sa[i].id<<" "<<sa[i].a+sa[i].b+sa[i].c<<endl;
}
return ;
}
int main(void)
{
fun();
return 0;
}
/*
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
*/