精华内容
下载资源
问答
  • week8模拟

    2020-04-15 16:23:51
    然后记录有多少个不同的数字,若大于三直接输出NO,如果小于三则必定有因为若为偶数取两个数的平均数即可,若为奇数则一个数直接另一个不变,若等于三则判断最小值与中间值的差是否等于最大值与中间值的差。...

    A:HRZ序列
    问题描述:
    在这里插入图片描述思路:
    (略微不好意思一下,截图截长了),这道题显而易见输入的数据中若有超过三个的不同数字则不可能有答案,所以先sort一下排排序,然后记录有多少个不同的数字,若大于三直接输出NO,如果小于三则必定有因为若为偶数取两个数的平均数即可,若为奇数则一个数直接加另一个不变,若等于三则判断最小值与中间值的差是否等于最大值与中间值的差。

    #include <iostream>
    #include<algorithm>
    int t,n;
    using namespace std;
    void cs()
    {
    	cin>>t;
    	for(int i=1;i<=t;i++)
    	{
    		cin>>n;
    		long long *A=new long long[n+10];
    		for(int i1=0;i1<n;i1++)
    		{
    			cin>>A[i1];
    		}
    		sort(A,A+n);
    		long long a1=A[0],n1=1,a2;
    		long long *A1=new long long[n+10];
    		A1[0]=A[0];
    		for(int i1=1;i1<n;i1++)
    		{
    			a2=A[i1];
    			if(a2!=a1)
    			{
    				A1[n1]=A[i1];
    				n1++;
    			}
    			a1=a2;
    		}
    		if(n1>3)
    		{
    			if(i!=t)
    			{
    				cout<<"NO"<<endl;
    			}
    			else
    			{
    				cout<<"NO";
    			}
    		}
    		if(n1<3)
    		{
    			if(i!=t)
    			{
    				cout<<"YES"<<endl;
    			}
    			else
    			{
    				cout<<"YES";
    			}
    			
    		}
    		if(n1==3)
    		{
    			if((A1[1]-A1[0])==(A1[2]-A1[1]))
    			{
    				if(i!=t)
    				{
    					cout<<"YES"<<endl;
    				}
    				else
    				{
    					cout<<"YES";
    				}
    				
    			}else
    			{
    				if(i!=t)
    				{
    					cout<<"NO"<<endl;
    				}
    				else
    				{
    						cout<<"NO";
    				}
    			
    			}
    		}
    	}
    }
    
    int main(int argc, char** argv) 
    {
    	cs();
    	return 0;
    }
    

    B:HRZ学英语
    问题描述:
    在这里插入图片描述思路:
    若为26个字母则直接判断是否有重复的字母(数组A对应26个字母),若有重复的字母直接输出-1,碰到问号的时候跳过不管,然后遍历数组A,记录里面为0的位置到数组A1,若符合输出条件,不为?输出原字符串,若为?则从最小地方输出A1中存储的字符,这样就是最小字典序。
    若大于26个字母则依次取出26个字母进行判断即可,和第一种情况差别不大。

    #include <iostream>
    #include<string.h>
    using namespace std;
    string s;
    void cs()
    {
    	int A[30],A1[30];
    	memset(A,0,sizeof(A));
    	memset(A1,0,sizeof(A1));
    	cin>>s;
    	int n=s.size();
    	int n1=0;//记录? 
    	
    	if(n==26)
    	{
    		bool ans=true;
    		for(int i=0;i<n;i++)
    		{
    			if(s[i]!='?')
    			{
    		    	int a=s[i]-'A';
    		    	A[a]++;
    		    	if(A[a]>1)
    				{
    					ans=false;
    	                cout<<"-1";
    					return;			
    				}				
    			}
    		}
    		int xx=0,xx1=0;
    		for(int i=0;i<26;i++)
    		{
    			if(A[i]==0)
    			{
    				A1[xx]=i;xx++;
    			}
    		}
    		if(ans)
    		{
    			for(int i=0;i<n;i++)
    			{
    				if(s[i]!='?')
    				{
    					cout<<s[i];
    				}else
    				{
    					char b=A1[xx1]+'A';xx1++;
    					cout<<b;
    				}
    			}
    		}
    	}
    	int yy=0;
    	if(n>26)
    	{
    
    		bool ans1=true;
    	while((yy+26)<=n)
    	{
    				bool ans=true;
    			memset(A,0,sizeof(A));
    	        memset(A1,0,sizeof(A1));
    		string s1=s.substr(yy,26);
    	    yy++;
    		for(int i=0;i<26;i++)
    		{
    			if(s1[i]!='?')
    			{
    		    	int a=s1[i]-'A';
    		    	A[a]++;
    		    	if(A[a]>1)
    				{
    					ans=false;
    					break;		
    				}				
    			}
    		}
    		int xx=0,xx1=0;
    		for(int i=0;i<26;i++)
    		{
    			if(A[i]==0)
    			{
    				A1[xx]=i;xx++;
    			}
    		}
    		if(ans)
    		{
    			ans1=false;
    			for(int i=0;i<26;i++)
    			{
    				if(s1[i]!='?')
    				{
    					cout<<s1[i];
    				}else
    				{
    					char b=A1[xx1]+'A';xx1++;
    					cout<<b;
    				}
    			}
    			return;
    		}
    		if((yy+25)==n)
    		{
    			if(ans1)
    			{
    				cout<<"-1";
    			}
    		}
    	}
    	}
    }
    int main(int argc, char** argv) 
    {
    	cs();
    	return 0;
    }
    

    C:咕咕东的奇妙序列
    问题描述:

    在这里插入图片描述思路:
    刚开始写的不能满足所需,只能到第六个测试点。
    这道题是二分的应用并且比较麻烦,先通过二分判断属于哪个分组中(1到i属于一组),然后计算在这个组中是第几位,再次二分,然后再次二分判断属于几位数,计算在这树中的第几位,输出。

    #include<iostream>
    #include<string.h>
    #include<string>
    using namespace std;
    long long int vis[4000000], ans[4000000];long long int h=1, j=0, k=0, l;
    long long js1(long long int x, long long int y)
    {
    	long long r = 0, e = x;
    	
    		while (e)
    		{
    			r++;
    			e /= 10;
    //			cout << r << "  " << e << endl;
    		}
    		r = r - y + 1;
    		for (long long int i = 1; i < r; i++)
    		{
    			x =x/ 10;
    	     }
    //		cout << x << endl;
    		return x % 10;
    }
    long long js(long long int x)
    {
    	long long int h=x, j=0, k=0, l=1, m=0, n;
    	while (h >= 10)
    	{
    		h =h/ 10;
    		l = l * 10;
    		n = l - l / 10;
    		m++;
    		j = j + n * (k + m) + n * (n - 1) / 2 * m;
    		k = k + n * m;
    	}
    	n = x - l + 1;
    	m++;
    	j = j + n * (k + m) + n * (n - 1) / 2 * m;
    //	cout << j << "   dddd" << endl;
    	return j;
    }
    void cs()
    {
    	int t;
    	cin >> t;
    	long long int x;
    	vis[1] = 9, ans[1] = 1; h = 1;
    	for (int i = 2; i <= 17; i++)
    	{
    		h = h * 10;
    		vis[i] = vis[i - 1] + h * 9 * i;
    	}
    	for (int i = 2; i <= 19; i++)
    	{
    		ans[i] = ans[i - 1] * 10;
    	}
    	for (int i = 0; i < t; i++)
    	{
    		cin >> x;
    		if (x == 1)
    		{
    			cout << 1 << endl;
    		}
    		else
    		{
    			long long left = 0, right = 1e9, mid;
    			while (left <= right)
    			{
    				mid = (left + right) / 2;
    				h = js(mid);
    		//		cout << h << "  " << mid << "  " << endl;
    				if (h < x)
    				{
    					k = mid;
    					left = mid + 1;
    
    				}
    				else
    				{
    					right = mid - 1;
    				}
    		//		cout << h << "  " << mid << "  " << left << "  " << right << endl;
    			}
    		//	cout << " dddd " << k << endl;
    			h = js(k);
    			x = x - h;
    	//		cout << "l: " << l << "  " << "h: " << h << "  " <<"k: "<<k<< endl;
    			if (x == 1)
    			{
    				cout << 1 << endl; continue;
    			}
    			left = 1; right = 17,mid;
    			while (left <= right)
    			{
    				mid = (left + right) / 2;
    				if (vis[mid] >= x)
    				{
    					h = mid;
    					right = mid - 1;
    				}
    				else
    				{
    					left = mid + 1;
    				}
    			}
    			x = x - vis[h - 1];
    			long long int A1 = x / h; 
    			long long int A2 = x % h;
    			if (A2 == 0)
    			{
    				A2 = A2 + h;
    			}
    			else
    			{
    				A1++;
    			}
    			long long ff = js1(ans[h] - 1 + A1, A2);
    //			cout << "ans: "<<ans[h]<<"  "<<"h: " << h << "  " << "A1: " << A1 << "  " << "A2: " << A2 << "  " << endl;
    			cout << ff<< endl;;
    		}
    	}
    }
    int main()
    {
    	cs();
    }
    
    展开全文
  • 怎样求最大值最小值或中间值)平均数怎么弄 去掉其中两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值中去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零的数求...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    怎样求最大值最小值或中间值)平均数怎么弄 去掉其中两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值中去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零的数求...
  • 输入一个正整数n (1),再输入n 个整数,将最小值与第一个交换,最大值与最后一个交换,然后输出交换后的n 个。 (25)抓住肇事者 一辆卡车违反交通规则,撞人后逃跑。现场共有三个目击者,但都没有记住车号,...
  • 70015 交换最小值最大值 8 70016 选择法排序 9 70017 在数组中查找指定的元素 10 70021 求矩阵各行元素之和 11 70022 矩阵运算 12 70023 九九乘法表 13 夏2周 14 70024 判断上三角矩阵 14 70025 算算看,这是第几...
  • 选择结构习题:求三个最大值 52%(4280/8171) 50% 2020-4-23 1012 循环结构习题:公式求π值 61%(3955/6500) 42% 2020-4-23 1013 循环结构习题:输入10个整数 ,输出所有负数并求其和 62%(3952/6347) 40% 2020-4-...
  • 对于连续子数组,可以用一个数值来存储当前和,如果当前和小于零,那么在进行到下一个元素的时候,直接把当前和赋值为下一个元素,如果当前和大于零,则累加下一个元素,同时用一个maxNum存储最大值并随时更新。...
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    已知光速每秒约三十万公里,求一光年约等于多少公里: %num 30w * 60 * 60 * 24 * 365 = 9.4608WY (w是后缀运算符,表示前乘以1万) 当结果>=1亿亿且万亿亿时,以亿亿为单位输出,例如: 国际象棋第1格放1粒...
  • 说明: 与 NLS_TIME_TZ_FORMAT 相似, 其中的一对指定 TIMESTAMP 数据类型的默认值, 该类型除存储 YEAR, MONTH 和 DAY 日期, HOUR, MINUTE 和 SECOND 时间, 还存储 TIMEZONE_HOUR 和 TIMEZONE_MINUTE。...
  • 返回与指定的字符对应的十进制; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出...
  • 计算参数区域中去除最大值最小值之再求平均,参数个有255个(Excel2003中是1到30个) hesum左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1/2则按1.5计算 NOWW不改变的当前...
  • 计算参数区域中去除最大值最小值之再求平均,参数个有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为...
  • LINGO软件的学习

    2009-08-08 22:36:50
    一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO建模语言的优势。 现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。 2.1 为什么...
  • MySQL命令大全

    2018-01-15 11:19:17
    5.BLOB TEXT类型,最大长度为(2^16-1)个字符。 6.VARCHAR型:变长字符串类型 5.导入数据库表  ()创建.sql文件  ()先产生一个库如auction.c:mysqlbin>mysqladmin -u root -p creat auction,会提示输入...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    计算参数区域中去除最大值最小值之再求平均,参数个有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1...
  • MYSQL常用命令大全

    2011-05-30 13:31:24
    5.BLOB TEXT类型,最大长度为65535(2^16-1)个字符。 6.VARCHAR型:变长字符串类型 5.导入数据库表  (1)创建.sql文件  (2)先产生一个库如auction.c:mysqlbin>mysqladmin -u root -p creat auction,会...
  • 2009达内SQL学习笔记

    2010-02-10 19:46:58
    最大优点是可以包含其他 SELECT 语句,使用能够动态地建立 WHERE 子句。 如 SELECT prod_id,prod_price,prod_name FROM Products WHERE vend_id IN(‘DELL’,’RBER’,’TTSR’); 八、单行函数: 函数一般在数据...
  • 太阳方位角计算程序

    2013-07-15 17:42:07
    而其最大值(或称远日点)为1.017天文单位,日期大约在7月4日。地球处于日地平均距离的日期为4月4日和10月5日。  由于日地距离对于任何一年的任何一天都是精确已知的,所以这个距离可用一个数学表达式表述。为了...
  • (1)max:求最大值 求每个部门的最高工资: [sql] view plain copy select EMP_NAME,EMP_DEP,max(EMP_SALARY) from EMPLOYEES group by EMP_DEP; (2)min:求最小值 求每个部门的最仰工资: [sql] view plain ...
  • n(-84~127) 可以存储正数、负数、零、定点和精度为38位的浮点数,其中,M表示精度,代表数字的总位数;N表示小数点右边数字的位数 日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    B. 球最大值函数max:通过单链表的一趟遍历,在单链表中确定值最大的结点; C. 统计函数number:统计单链表中具有给定值x的所有元素数量; D. *建立函数create:根据一维数组a[n]建立一个单链表,使...
  • c++ 面试题 总结

    2009-09-16 08:44:40
    这样会造成很大的浪费,平均浪费了50%的内存空间,但时易于管理。 页式管理:把主存分为一页一页的,每一页的空间要比一块一块的空间小很多,显然这种方法的空间利用率要比块式管理高很多。 段式管理:把主存分为...
  • 8.6.1 例子:使用First_value来计算最大值 206 8.6.2 例子:使用Last_value来计算最小值 207 8.7 其他分析函数 207 8.7.1 Nth_value(11gR2) 207 8.7.2 Rank 209 8.7.3 Dense_rank 210 8.7.4 Row_number 211 ...
  • 8.6.1 例子:使用First_value来计算最大值 206 8.6.2 例子:使用Last_value来计算最小值 207 8.7 其他分析函数 207 8.7.1 Nth_value(11gR2) 207 8.7.2 Rank 209 8.7.3 Dense_rank 210 8.7.4 Row_number 211 ...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

平均数等于最大值加最小值