【HDOJ】2030 - 2039

引言:两年没写博客了,两年来经历了很多的事情,太多太多,无法说清(;′⌒`)。无论如何生活还要继续,当前计划从杭电OJ开始记录我的痕迹(ง •_•)ง。
(如有错误,欢迎指正o( ̄▽ ̄)ブ)

2030 (汉字统计)

#include <iostream>
#include <string>
using namespace std;

//汉字机内码使用2个字节,最高位为1,补码表示为负数
int main() {
	int len;
	cin >> len;
	string s;
	getline(cin, s);
	while (getline(cin, s)) {
		int count = 0;
		for (int i = 0; i < s.size(); i++) {
			if (s[i] < 0) {
				count++;
			}
		}
		cout << (count / 2) << endl;
	}
}

2031 (进制转换)

#include <iostream>
using namespace std;

void convert(int n, int r) {
	if (n > r) {
		convert(n / r, r);
		n = n % r;
	}

	if (n >= 0 && n <= 9) cout << n;
	else if (n == 10) cout << "A";
	else if (n == 11) cout << "B";
	else if (n == 12) cout << "C";
	else if (n == 13) cout << "D";
	else if (n == 14) cout << "E";
	else if (n == 15) cout << "F";
}

//用一个递归或者栈迭代即可实现
int main() {
	int n, r;
	while (cin >> n >> r) {
		if (n < 0) {
			cout << "-";
			n = abs(n);
		}
		convert(n, r);
		cout << endl;
	}
}

2032 (杨辉三角)

#include <iostream>
using namespace std;

//核心思路:arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]
int main() {
	int n;
	int arr[30][30];
	while (cin >> n) {
		for (int j = 0; j < n; j++) {
			for (int i = 0; i < n; i++) {
				if (j == 0) arr[i][j] = 1;
				else if (i < j) arr[i][j] = 0;
				else arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (arr[i][j] == 0) break;
				if (j > 0) cout << " ";
				cout << arr[i][j];
			}
			cout << endl;
		}
		cout << endl;
	}
}

2033 (人见人爱A+B)

#include <iostream>
using namespace std;

int main() {
	int ah, am, as, bh, bm, bs, len;
	while (cin >> len) {
		for (int i = 0; i < len; i++) {
			scanf("%d%d%d%d%d%d", &ah, &am, &as, &bh, &bm, &bs);
			int h = ah + bh, m = am + bm, s = as + bs;
			if (s >= 60) {
				m += s / 60;
				s %= 60;
			}
			if (m >= 60) {
				h += m / 60;
				m %= 60;
			}
			printf("%d %d %d\n", h, m, s);
		}
	}
}

2034 (人见人爱A-B)

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
	int n, m;
	int listN[100], listM[100];
	while (cin >> n >> m) {
		if (n == 0 && m == 0) break;
		//输入
		for (int i = 0; i < n; i++) cin >> listN[i];
		for (int i = 0; i < m; i++) cin >> listM[i];
		//排序,方便使用双指针
		sort(listN, listN + n);
		sort(listM, listM + m);
		int pointerN = 0, pointerM = 0;
		bool isPrintf = false;
		//类似于归并排序的写法
		while (pointerN < n && pointerM < m) {
			if (listN[pointerN] == listM[pointerM]) pointerN++;
			else if (listN[pointerN] <= listM[pointerM]) {
				if (isPrintf) cout << " ";
				cout << listN[pointerN];
				pointerN++;
				isPrintf = true;
			}
			else pointerM++;
		}
		while (pointerN < n) {
			if (isPrintf) cout << " ";
			cout << listN[pointerN];
			pointerN++;
			isPrintf = true;
		}
		if (!isPrintf) cout << "NULL";
		cout << endl;
	}
}

2035 (人见人爱A^B)

#include <iostream>
using namespace std;

//思路:直接求幂函数非常容易值溢出,既然只输出最后三位,不妨只取三位数用连乘,每次对结果取余1000
int main() {
	int a, b;
	while (cin >> a >> b) {
		if (a == 0 && b == 0) break;
		a %= 1000;
		int result = 1;
		for (int i = 0; i < b; i++) {
			result = result * a % 1000;
		}
		cout << result << endl;
	}
}

2036 (改革春风吹满地)

#include <vector>
#include <iostream>
using namespace std;

struct Coordinate
{
	int x;
	int y;
	Coordinate(int val1, int val2) : x(val1), y(val2) {}
};

//计算三角形面积公式:s = 0.5*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2);
int main() {
	int count;
	vector<Coordinate> list;
	while (cin >> count) {
		if (count == 0) break;
		for (int i = 0; i < count; i++) {
			int x, y;
			cin >> x >> y;
			list.push_back(Coordinate(x, y));
		}
		double s = 0;
		for (int i = 1; i < count - 1; i++) {
			s += 0.5 * (list[0].x * list[i].y + list[i].x * list[i + 1].y + list[i + 1].x * list[0].y - list[0].x * list[i + 1].y - list[i].x * list[0].y - list[i + 1].x * list[i].y);
		}
		printf("%.1lf\n", s);
		list.clear();
	}
}

2037 (今年暑假不AC)

#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;

struct Program {
	int startTime;
	int endTime;
	Program (int val1, int val2) : startTime(val1), endTime(val2) {}
};

//从查看最早结束的电视节目往后遍历
int main() {
	int count;
	vector<Program> programList;
	while (cin >> count) {
		if (count == 0) break;

		//记录数据
		for (int i = 0; i < count; i++) {
			int val1, val2;
			cin >> val1 >> val2;
			programList.push_back(Program(val1, val2));
		}
		//根据结束时间排序
		sort(programList.begin(), programList.end(), [](const Program& a, const Program& b) {
			return a.endTime < b.endTime;
		});

		int endTime = programList[0].endTime, res = 1;
		for (int i = 1; i < count; i++) {
			if (programList[i].startTime >= endTime) {
				endTime = programList[i].endTime;
				res++;
			}
		}
		cout << res << endl;
		programList.clear();
	}
}

2038 (Miss)

2039 (三角形)

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
	int len;
	while (cin >> len) {
		double arr[3];
		for (int i = 0; i < len; i++) {
			cin >> arr[0] >> arr[1] >> arr[2];
			sort(arr, arr + 3);
			if (arr[0] + arr[1] <= arr[2] || arr[0] <= 0) cout << "NO" << endl;
			else cout << "YES" << endl;
		}
	}
}
「LLM那些事」系列第 4 篇《上下文窗口的边界》,文章连接:https://blog.csdn.net/houwenjin/article/details/163999753。 演示什么:在「预测」Sheet 的黄色格子里输入一句话(默认「来泡一杯」),四个「模型」——分别只统计最后 1 / 2 / 3 / 4 个字的 n-gram 查表——同时预测下一个字。同一个输入,看的上下文越长,候选越少、预测越确定: ┌────────────────┬──────────┬───────────────┬──────┐ │ 只看最后几个字 │ 用的前缀 │ 候选下一字数 │ 预测 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 1 个 │ 杯 │ 3(茶/子/水) │ 模糊 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 2 个 │ 一杯 │ 2(茶/水) │ 收窄 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 3 个 │ 泡一杯 │ 1(茶) │ 确定 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 4 个 │ 来泡一杯 │ 1(茶) │ 确定 │ └────────────────┴──────────┴───────────────┴──────┘
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 笔记本的散热风扇管理 ---------------------------------------- 09 November 2006. 对于版本20061109的变更概述如下: 1) ACPI CA核心子系统:在源操作数是一个操作区域的场景下,对负载ASL操作符进行了优化。仅需映射操作区域内存,而不是执行逐字节读取。 (区域必须为SystemMemory类型,见下文。)修正了源操作数为区域字段的负载ASL操作符问题。也允许缓冲区对象作为源操作数。 BZ 480 解决了负载ASL操作符允许源操作数为任意类型操作区域的问题。现被限制为仅SystemMemory类型的区域,符合ACPI规范。 BZ 481 对新表管理器代码进行了额外的清理和优化。AcpiEnable将在所有必需的ACPI表未加载时失败(FADT, FACS, DSDT)。 BZ 477 在acobject.h中添加了#pragma pack(8/4),以确保此头文件中的结构始终编译为对齐。ACPI_OPERAND_OBJECT已被手动优化为对齐,并在字节打包时无法工作。示例代码和数据大小:这些是Microsoft Visual C++ 6.0 32位编译器生成的、与操作系统无关的acpica.lib的大小。调试版本的代码包含调试输出跟踪机制,具有更大的代码和数据大小。上一个版本:非调试版本:78.1K代码,17.1K数据,95.2K总计 调试版本:155.4K代码,63.1K数据,218.5K总计 当前版本:非调试版本:77.9K代码,17.0K数据,94.9K总计 调试版本:155.2K代码,63.1K数据,...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值