寒假2 蓝桥杯-二分

#include<iostream>
using namespace std;
#include<algorithm>
int n;
int arr[100010];

int f_left(int q)
{
	int a = -1;
	int left = 1, right = n;
	int mid;
	while (left < right)
	{
		mid = (left + right) / 2;
		if (arr[mid] == q)
		{
			right = mid - 1;
			//cout << "1";
		}
		else if (arr[mid] < q)
		{
			left = mid+1;
			//cout << "2";
		}
		else
		{
			right = mid - 1;
			//cout << "3";
		}
	}
	return left;
}

int f_right(int q)
{
	int a = -1;
	int left = 1, right = n;
	int mid;
	while (left < right)
	{
		mid = (left + right) / 2;
		if (arr[mid] == q)
		{
			left = mid + 1;
			//cout << "4";
		}
		else if (arr[mid] > q)
		{
			
			right = mid - 1;
			//cout << "5";
		}
		else
		{
			left = mid + 1;
			//cout << "6";
		}
	}
	return right;
}
int main()
{
	int q;
	cin >> n >> q;
	for (int i = 1;i <= n;i++)
	{
		cin >> arr[i];
	}
	int left = f_left(q);
	int right = f_right(q);
	if (left ==-1&&right==-1)
	{
		cout << "-1 -1" << endl;
	}
	else
	{
		cout << left << " " << right << endl;
		cout << right - left  << endl;
	}
	return 0;
}

 

 

 

#include<iostream>
using namespace std;
int n;
int arr[60];
void f(int q)
{
	int left = 1;
	int right = n;
	int mid;
	int ans;
	while (left < right)
	{
		mid = (left + right) / 2;
		if (arr[mid] < q)
		{
			if (arr[mid + 1] > q)
			{
				cout << mid+1 << endl;
				return;
			}
			left = mid + 1;
		}
		else
		{
			if (arr[mid - 1] < q)
			{
				cout << mid << endl;
				return;
			}
			right = mid - 1;
		}
	}
}
int main()
{
	cin >> n;
	for (int i = 1;i <= n;i++)
	{
		cin >> arr[i];
	}
	int q;
	cin >> q;
	if (q < arr[1])
	{
		cout << 1 << endl;
	}
	else if (q > arr[n])
	{
		cout << n + 1 << endl;
	}
	else
	{
		f(q);
	}
	return 0;
}

 

#include<iostream>
using namespace std;
#include<algorithm>
int n, k;
int arr[100010];
int main()
{
	cin >> n >> k;
	for (int i = 1;i <= n;i++)
	{
		cin >> arr[i];
	}
	int left = 1;
	int right = 100000000;
	int mid;
	int ans = 0;
	while (left <= right)
	{
		int res = 0;
		mid = (left + right) / 2;
		for (int i = 1;i <= n;i++)
		{
			res += (arr[i] / mid);
			if (res > k)break;
		}
		if (res == k)
		{
			if (mid > ans)ans = mid;
			left = mid + 1;
		}
		else if (res > k)
		{
			if (mid > ans)ans = mid;
			left = mid + 1;
		}
		else
		{
			
			right = mid - 1;
		}
	}
	cout << ans << endl;
	return 0;
}

 

#include<iostream>
using namespace std;
int arr[27];
int main()
{
	int n;
	cin >> n;
	char ch;
	for (int i = 0;i < n;i++)
	{
		cin >> ch;
		if (int(ch) >= 65 && int(ch) <= 90)
		{
			arr[int(ch) - 64] = 1;
		}
		else
		{
			arr[int(ch) - 96] = 1;
		}
	}
	for (int i = 1;i <= 26;i++)
	{
		if (arr[i] != 1)
		{
			cout << "NO" << endl;
			return 0;
		}
	}
	cout << "YES" << endl;
	return 0;
}

 

相关推荐

  1. 糖果

    2024-01-30 12:36:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 12:36:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 12:36:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 12:36:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 12:36:01       20 阅读

热门阅读

  1. 【C++】构造函数

    2024-01-30 12:36:01       37 阅读
  2. 如何系统地自学 Python?

    2024-01-30 12:36:01       46 阅读
  3. 【Vue3】状态管理工具——pinia的使用

    2024-01-30 12:36:01       43 阅读
  4. 四:C语言-条件分支语句

    2024-01-30 12:36:01       42 阅读
  5. 【前端】防抖和节流

    2024-01-30 12:36:01       43 阅读
  6. nginx项目部署+项目优化

    2024-01-30 12:36:01       40 阅读
  7. L1-032 Left-pad

    2024-01-30 12:36:01       42 阅读
  8. 美易官方《盘前:道指期货跌0.04% 风险周降临》

    2024-01-30 12:36:01       41 阅读
  9. 随机森林和决策树区别

    2024-01-30 12:36:01       40 阅读
  10. ID3算法 决策树学习 Python实现

    2024-01-30 12:36:01       40 阅读