ACWing 2021寒假每日一题题解

104.货仓选址(贪心?)

找中位数即可

/*
时间会慢慢过去。
或许有一天,土味北子哥放下了花大杀手的头衔,回到河北的家里盖着钱当个安静的河北首富。
或许有一天,博爱哥哥不再是按时更新的汤达人,偶尔发着一路拍的3个vlog,当回贵阳的猴王瀚哲。
或许有一天,老番茄最终离开了牛逼的复旦,带着母哥和戴安娜,去看婷哥和AJ看过的夕阳,做个红切黑的史上最强。
或许有一天,某幻也能喝上几杯家乡的啤酒,唱着rap,做着青岛教父,迈过八角笼去找另一个垭口,但还是那个不会死的马了顶大。
或许有一天,蕾丝再没有一个月八个商单的神迹,风中蟾蜍和翘首以盼也成为过去,看着烂片,摸着金闪闪和小智,不再看着恶评和谩骂,拜托了这对他真的很重要。
而我们,或许也会成长成曾经期待里的大人。读书,学习,工作,找一个自己喜欢的人组成家庭。慢慢的习惯阴阳怪气不在的日子,成就着自己的人生。
但我们不会忘记那些相伴的日子,忘不掉那个我最好的兄弟,忘不掉被烫屁股的团欺,忘不掉“周游世界,翱翔太宇”,忘不掉没长出头发的47,忘不掉马儿娇娇的中文八级,忘不掉那个总是先走了的帝中帝。
忘不掉我们的青春里,有这样一群发着光的,欢天喜地好哥们。
追着光行走的我们,也在成为别人眼里的光。
热爱所向披靡,那就欢天喜地。
*/
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#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
*/

898.数字三角形(初识dp)

不造为什么用dfsWA了QAQ,可能是边界处理的不太行,而且时间复杂度太高了.从上往下走比较麻烦,要对边界特殊处理.丛下往上走,可以不考虑边界,比较容易。
在这里插入图片描述
某点的值 = 该点的值 + 最长的路径,最长路径可以用另一个数组来记录,也可以用原数组,直接把底下的加上去。
比如,该题从倒数第二行更新。4 = 4+20,5 = 5+7,8 = 8+6. 7 = 7+max(24,12),10 = 10 + max(12,14).

#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#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
*/

756. 蛇形矩阵

数组模拟题,题目暗示走贪吃蛇路线.刚开始写的是一个for循环套小循环,但是有bug,如果是方阵能过,一般的矩阵会有bug。所以采用了题解带lao的贪吃蛇走法.向右向下向左向上,然后走下一个小圈.

/*
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,
b站直播才刚开始,陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,
b站恰逢这时候迎来了十周年,发生了很多事,
我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#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;
}

1113. 红与黑(dfs/bfs模板)

//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 <iostream>
#include <algorithm>
#include <queue>
#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
*/

1346. 回文平方

其他进制转十进制好说,十进制转其他进制不好说,🐒不会,但🐒会搜。用短除法.
除出来的余数是转换出的数的转置。一切尽在注释中好叭.

/*
有些人难过,难过的是重点没有上,
而有些人难过,难过的却是本科没有上。
就好像有人为开不起法拉利,穿不起PRADA烦恼,
而有人却为最基本的吃不饱,穿不暖烦恼一样。 
我不知道三百多分,四百多分,五百多分,六百多分,甚至那个的省状元。
拿到社会上,究竟会有多少含金量。
也许挑灯夜读,啃物理,啃数学的那些日日夜夜,换来的只是大人们一声或惊或疑的感叹,
也许傲人的高分,得到的也不过是一句赞许,和众多考生的瞻仰。
个中滋味,冷暖自知。
对很多三姑六婆来说,问成绩是一种关心,也是这么多天来最好的一个谈资,
再高的分数也跟他们毫无关系,再低的分数于他们也无关痛痒。 
那些真正关心我们的人也许就是那些什么都不说或者是成绩一出来就在宽慰你开导你的那些人。 
他们说,高考最迷人的地方不是如愿以偿,而是阴差阳错。
你如愿以偿地考入了自己的理想的学校,却发现自己并不喜欢它,或者并不喜欢所学的专业。
你阴差阳错地调剂到一个专业,却发现自己喜欢的正是这个专业。
你如愿以偿地和初恋共处一个城市,却发现命运阴差阳错地将你们分开。
你阴差阳错地和初恋分开,却发现原来这个城市的这个人,才是你生命中的那个他(她)。
命运就是这么不可揣测,即使你精心计划。
我想社会并不会因为一场考试而判定一个人才。
不管两个月后,我们将身处何方,
不管三年、四年后我们会有怎样翻天覆地的人生际遇,
出了学校,社会会告诉你,原来那些你在乎到夜夜失眠,难受的掉过眼泪的分数并不重要。
社会也会告诉你,出了学校,各凭本事。
我很平淡的接受了这个有些令人尴尬的分数,
难过高兴这些都不重要,重要的是,又一个三年尘埃落定。
我们都是些抓着青春尾巴的人,但我相信,生活并不会因此嫌弃我们,
它会有它最好的安排。
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,b站直播才刚开始,
陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,b站恰逢这时候迎来了十周年,
发生了很多事,我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include <iostream>
#include <algorithm>
#include <cmath>
#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;
}

AcWing 680. 剪绳子

小数二分模板,求右边界,会写,但不造原理,有空再学(拖就硬拖).

/*
有些人难过,难过的是重点没有上,
而有些人难过,难过的却是本科没有上。
就好像有人为开不起法拉利,穿不起PRADA烦恼,
而有人却为最基本的吃不饱,穿不暖烦恼一样。 
我不知道三百多分,四百多分,五百多分,六百多分,甚至那个的省状元。
拿到社会上,究竟会有多少含金量。
也许挑灯夜读,啃物理,啃数学的那些日日夜夜,换来的只是大人们一声或惊或疑的感叹,
也许傲人的高分,得到的也不过是一句赞许,和众多考生的瞻仰。
个中滋味,冷暖自知。
对很多三姑六婆来说,问成绩是一种关心,也是这么多天来最好的一个谈资,
再高的分数也跟他们毫无关系,再低的分数于他们也无关痛痒。 
那些真正关心我们的人也许就是那些什么都不说或者是成绩一出来就在宽慰你开导你的那些人。 
他们说,高考最迷人的地方不是如愿以偿,而是阴差阳错。
你如愿以偿地考入了自己的理想的学校,却发现自己并不喜欢它,或者并不喜欢所学的专业。
你阴差阳错地调剂到一个专业,却发现自己喜欢的正是这个专业。
你如愿以偿地和初恋共处一个城市,却发现命运阴差阳错地将你们分开。
你阴差阳错地和初恋分开,却发现原来这个城市的这个人,才是你生命中的那个他(她)。
命运就是这么不可揣测,即使你精心计划。
我想社会并不会因为一场考试而判定一个人才。
不管两个月后,我们将身处何方,
不管三年、四年后我们会有怎样翻天覆地的人生际遇,
出了学校,社会会告诉你,原来那些你在乎到夜夜失眠,难受的掉过眼泪的分数并不重要。
社会也会告诉你,出了学校,各凭本事。
我很平淡的接受了这个有些令人尴尬的分数,
难过高兴这些都不重要,重要的是,又一个三年尘埃落定。
我们都是些抓着青春尾巴的人,但我相信,生活并不会因此嫌弃我们,
它会有它最好的安排。
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,b站直播才刚开始,
陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,b站恰逢这时候迎来了十周年,
发生了很多事,我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include <iostream>
#include <algorithm>
#include <cmath>
#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
*/

1227. 分巧克力

整数二分模板,左右边界都有写,原理不是很清楚,感觉是压缩区间,有空再学QAQ(拖住)

/*
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,
b站直播才刚开始,陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,
b站恰逢这时候迎来了十周年,发生了很多事,
我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include <iostream>
#include <algorithm>
#include <cmath>
#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]<target) l = mid+1;
	}
	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
*/

422. 校门外的树

方法一,暴力就完事了,最多10的6次方罢了,1s的操作不超过10的7次方一般没事.O(NM)

/*
时间会慢慢过去。
或许有一天,土味北子哥放下了花大杀手的头衔,回到河北的家里盖着钱当个安静的河北首富。
或许有一天,博爱哥哥不再是按时更新的汤达人,偶尔发着一路拍的3个vlog,当回贵阳的猴王瀚哲。
或许有一天,老番茄最终离开了牛逼的复旦,带着母哥和戴安娜,去看婷哥和AJ看过的夕阳,做个红切黑的史上最强。
或许有一天,某幻也能喝上几杯家乡的啤酒,唱着rap,做着青岛教父,迈过八角笼去找另一个垭口,但还是那个不会死的马了顶大。
或许有一天,蕾丝再没有一个月八个商单的神迹,风中蟾蜍和翘首以盼也成为过去,看着烂片,摸着金闪闪和小智,不再看着恶评和谩骂,拜托了这对他真的很重要。
而我们,或许也会成长成曾经期待里的大人。读书,学习,工作,找一个自己喜欢的人组成家庭。慢慢的习惯阴阳怪气不在的日子,成就着自己的人生。
但我们不会忘记那些相伴的日子,忘不掉那个我最好的兄弟,忘不掉被烫屁股的团欺,忘不掉“周游世界,翱翔太宇”,忘不掉没长出头发的47,忘不掉马儿娇娇的中文八级,忘不掉那个总是先走了的帝中帝。
忘不掉我们的青春里,有这样一群发着光的,欢天喜地好哥们。
追着光行走的我们,也在成为别人眼里的光。
热爱所向披靡,那就欢天喜地。
*/
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#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)
先求出所有移动树木的操作的区间的并集,那么马路上剩余部分即为最终剩下树木的部分。
使用区间合并算法,
有空再写.

429. 奖学金

sort排序,这我熟阿.

/*
有些人难过,难过的是重点没有上,
而有些人难过,难过的却是本科没有上。
就好像有人为开不起法拉利,穿不起PRADA烦恼,
而有人却为最基本的吃不饱,穿不暖烦恼一样。 
我不知道三百多分,四百多分,五百多分,六百多分,甚至那个的省状元。
拿到社会上,究竟会有多少含金量。
也许挑灯夜读,啃物理,啃数学的那些日日夜夜,换来的只是大人们一声或惊或疑的感叹,
也许傲人的高分,得到的也不过是一句赞许,和众多考生的瞻仰。
个中滋味,冷暖自知。
对很多三姑六婆来说,问成绩是一种关心,也是这么多天来最好的一个谈资,
再高的分数也跟他们毫无关系,再低的分数于他们也无关痛痒。 
那些真正关心我们的人也许就是那些什么都不说或者是成绩一出来就在宽慰你开导你的那些人。 
他们说,高考最迷人的地方不是如愿以偿,而是阴差阳错。
你如愿以偿地考入了自己的理想的学校,却发现自己并不喜欢它,或者并不喜欢所学的专业。
你阴差阳错地调剂到一个专业,却发现自己喜欢的正是这个专业。
你如愿以偿地和初恋共处一个城市,却发现命运阴差阳错地将你们分开。
你阴差阳错地和初恋分开,却发现原来这个城市的这个人,才是你生命中的那个他(她)。
命运就是这么不可揣测,即使你精心计划。
我想社会并不会因为一场考试而判定一个人才。
不管两个月后,我们将身处何方,
不管三年、四年后我们会有怎样翻天覆地的人生际遇,
出了学校,社会会告诉你,原来那些你在乎到夜夜失眠,难受的掉过眼泪的分数并不重要。
社会也会告诉你,出了学校,各凭本事。
我很平淡的接受了这个有些令人尴尬的分数,
难过高兴这些都不重要,重要的是,又一个三年尘埃落定。
我们都是些抓着青春尾巴的人,但我相信,生活并不会因此嫌弃我们,
它会有它最好的安排。
一转眼四年了,从老番茄高二起就开始关注,
那个时候奇美拉君还没有去留学,b站直播才刚开始,
陆夫人和小绝用的情侣(雾)直播间封面,
无聊的时间看看散人的视频,和室友们猜他会死多少次。
在高三的时候老番茄停更一年,高考的时候,
多年未发微博的奇美拉君发了一条微博祝老番茄高考顺利。
没想到一转眼四年老番茄就毕业了,b站恰逢这时候迎来了十周年,
发生了很多事,我们也在不知不觉间成为了历史的见证者和推动者。
当初老番茄给高考结束的学子们专门做的视频里面最后一句话是飞吧,
这次的毕业vlog最后一句话是,再见。
希望下个十年,大家都在。
*/
#include <iostream>
#include <algorithm>
#include <cmath>
#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
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021年数学建模E题是关于自动调节系统的稳态误差问题。解题思路如下: 首先,我们需要了解自动调节系统的基本原理。自动调节系统通过测量输出信号与期望信号之间的差异,采取一系列措施来调整系统的输入信号,以实现系统输出与期望信号的一致性。其中,稳态误差是指系统在稳定状态时,输出信号与期望信号之间的残差。 针对这个问题,我们可以采用控制理论中的PID控制器进行建模和分析。PID控制器包含比例项、积分项和微分项,可以根据误差信号的大小、变化率和积分,调节系统的输入信号。 首先,我们需要建立自动调节系统的数学模型。可以考虑使用差分方程描述系统的动态行为,利用系统的输入与输出之间的关系来建立模型。然后,可以根据模型参数和系统的特性,计算出稳态误差。 接下来,我们可以通过调节PID控制器的参数来减小稳态误差。常见的方法是通过调整比例增益、积分时间常数和微分时间常数来实现。可以利用数学方法,例如反馈控制理论和优化算法,确定最佳的参数取值,以达到最小的稳态误差。 最后,我们可以通过数值模拟和仿真来验证建立的数学模型和参数调节的有效性。可以利用计算机软件,例如MATLAB,进行仿真实验,观察系统的稳态误差情况。根据仿真结果,可以进一步优化参数,以获得好的控制效果。 总之,2021年数学建模E题的解题思路是建立自动调节系统的数学模型,并利用PID控制器的参数调节来减小稳态误差。通过数值模拟和仿真实验验证模型的有效性。这样可以解决自动调节系统的稳态误差问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值