第三周算法周报

本文介绍了两道数学问题的解决方案:一是计算凸多边形对角线交点的数量,二是判断一周课程安排是否会使津津不高兴。第一题通过递增选择对角线并考虑重复计数来求解,第二题通过比较每天上课时间找出最不高兴的一天。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P2181 对角线
题目描述
对于一个 n 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。

例如,6 边形:在这里插入图片描述
这里可以注意到并没有出现多条对角线交叉在一个点的情况。

#include <iostream>

using namespace std;

int main()
{
	long long int n = 0;
	cin >> n;
	long long int ans = 0;
	long long int temp = 1;
	while (temp < (n - 2))
	{
		ans += temp * (n - temp - 2);
		temp++;
	}
	if (n % 4 == 0)
	{
		n /= 4;
	}
	else if (n % 2 == 0)
	{
		n /= 2;
		ans /= 2;
	}
	else
	{
		ans /= 4;
	}
	ans *= n;
	cout << ans << endl;
	return 0;
}

思路:1.先选择一条对角线,将多边形分为两个部分,一边是一个点的,另一边是剩下的点,两边的点相连形成的对角线与所选择的对角线相交形成交点。
2.以此类推,现分为一边是1个点的,然后这一边的点逐渐增加,直到另外一边也只剩下一个点为止。需要特别注意的是,这样的每一组对角线都有n条,这样重复计算了比如点c到点b和点b到点c,其实是同一条。再根据题意,每个交点是由两个对角线形成的,而我们在计算点的时候用每条对角线都计算了一次,所以又重复计算了一遍。也就是说,这样我们得到的ans是最终正确ans的4倍。
特别注意,我将乘n的操作挪到了外面,把除以4的操作提前了,避免在运算的过程中出现数据上溢的情况。

P1085 [NOIP2004 普及组] 不高兴的津津

题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式
输入包括77行数据,分别表示周一到周日的日程安排。每行包括两个小于1010的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式
一个数字。如果不会不高兴则输出00,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 71,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

输入输出样例
输入
5 3
6 2
7 2
5 3
5 4
0 4
0 6
输出
3
说明/提示 noip2004普及组第1题

#include<stdio.h>
int main(){
	int i,j,c,d,b=0,a=0;//j<8就直接输出a=0
	for(int i=1;i<=7;i++){
		scanf("%d %d",&c,&d);
		j=c+d;
	if((j>b)&&(j>8)){
		b=j;
		a=i;
	}
}
	printf("%d\n",a);
	return 0;
} 

P1888 三角函数
题目描述
输入一组勾股数 a,b,c用分数格式输出其较小锐角的正弦值。(要求约分。)

输入格式
一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。

输出格式
一行,包含一个分数,即较小锐角的正弦值

输入输出样例
输入
3 5 4
输出
3/5

说明/提示
数据保证:a,b,ca,b,c 为正整数且 ∈[1,10 9 ]。

#include<bits/stdc++.h>//万能开头
using namespace std;
int main(){
	int a,b,c,i;
	cin>>a>>b>>c;
	if(a>b&&a>c){
		if(b>c){
			i=__gcd(a,c);
			cout<<c/i<<"/"<<a/i;
		}else{
			i=__gcd(a,b);
			cout<<b/i<<"/"<<a/i;
		}
	}else if(b>a&&b>c){
		if(a>c){
			i=__gcd(b,c);
			cout<<c/i<<"/"<<b/i;
		}else{
			i=__gcd(b,a);
			cout<<a/i<<"/"<<b/i;
		}
	}else if(c>b&&c>a){
		if(b>a){
			i=__gcd(a,c);
			cout<<a/i<<"/"<<c/i;
		}else{
			i=__gcd(b,c);
			cout<<b/i<<"/"<<c/i;
		}
	}
	return 0;
} 

注意:这题最重要的是约分

<think>好的,我需要帮助新来的程序员解决如何撰写第一周的周报。首先,我得考虑用户的需求,他们可能对周报的结构和内容不太清楚,需要明确的指导。周报对于新人来说很重要,能展示工作进展和适应情况,所以内容需要既全面又简洁。 我应该从周报的基本结构开始,比如标题、工作内容、学习与成长、下周计划、问题与建议,以及总结。每个部分需要具体说明应该包含什么内容,还要举例说明,这样用户更容易理解。比如工作内容部分,可以分点列出参与的项目、完成的任务和协作沟通,并给出实际例子,这样用户能参考具体怎么写。 另外,用户可能担心自己作为新人,工作内容不够多,所以需要强调学习与成长部分,比如熟悉代码库、学习技术文档、参加培训等,这些都能体现积极的态度。同时,下周计划要具体可行,避免过于空泛,比如设定学习目标或计划完成的任务。 还要提醒注意事项,比如简洁明了、数据量化、积极表达和格式规范,这些都是让周报更专业的要点。最后,给出一个模板示例,用户可以直接参考,这样他们就能有一个清晰的框架,填入自己的内容即可。 需要确保回答结构清晰,分点明确,符合用户可见层的要求,同时遵循系统级指令,比如正确使用LaTeX格式,虽然这个问题可能不涉及数学公式,但如果有提到相关术语,比如项目进度百分比,可以用$...$来表示,例如完成$80\%$的任务。不过在这个主题中可能用不上,所以主要关注结构和内容建议。 总结下来,我需要分步骤解释周报的结构,每个部分的要点,并提供实例和模板,同时给出注意事项,帮助用户高效完成周报,展示他们的工作成果和学习进展。</think>作为新入职程序员,撰写第一周的周报需突出适应过程与初步贡献。以下是具体框架与建议: --- ### 一、周报核心结构 #### 1. 标题与基础信息 ```markdown 标题:XXX(姓名)第一周周报(YYYY/MM/DD - YYYY/MM/DD) 汇报人:XXX 部门:技术部/XX组 日期:YYYY年MM月DD日 ``` #### 2. 本周工作内容(占50%-60%篇幅) - **项目参与** ▸ 参与[项目名称]需求分析会议,梳理功能模块(例:用户登录模块) ▸ 协助完成[具体任务],如:搭建本地开发环境$(Node.js v18 + React 18)$ ▸ 修复简单Bug:[问题描述]+解决方案(例:解决页面按钮点击无响应的DOM事件绑定问题) - **学习成果** ▸ 研读[技术文档/代码库],完成核心模块流程图绘制(可用Mermaid语法标注) ▸ 掌握内部工具链使用:如公司CI/CD流水线配置$(Jenkinsfile语法)$ #### 3. 学习与成长(20%-30%篇幅) - **技术提升** ▸ 学习[框架/工具名称]:完成官方教程$(\texttt{Tutorial\_Chapter1-3}$)$ ▸ 代码规范:通过ESLint规则熟悉团队代码风格$(\texttt{airbnb-base})$ - **协作能力** ▸ 与导师完成3次代码Review,优化函数封装逻辑 ▸ 参与每日站会,熟悉Scrum流程 #### 4. 下周计划(15%-20%篇幅) - 优先级排序: ▸ P0:完成[任务名称]开发(例:用户信息编辑接口联调) ▸ P1:学习[技术点]并输出笔记(例:Redux状态管理实践) ▸ P2:协助排查[已知问题](例:数据库连接池性能波动) #### 5. 问题与建议(可选) - **阻塞性问题** ▸ 开发环境配置依赖版本冲突(附错误日志摘要) ▸ 接口文档缺失字段说明(具体接口名+字段) - **改进建议** ▸ 提议建立新人FAQ文档(减少重复问题咨询) --- ### 二、注意事项 1. **数据量化** ▸ 错误修复:完成$5$个低优先级Bug修复 ▸ 代码贡献:提交$3$次PR,合计$200$行代码(语言占比:$60\%$ TypeScript,$40\%$ Python) 2. **技术细节表达** ▸ 使用专业术语:如“实现$O(n)$时间复杂度算法优化” ▸ 关键代码片段: ```javascript // 使用React.memo优化渲染性能 export default React.memo(UserList); ``` 3. **风险预警** ▸ 标注未完成任务的依赖条件: “用户画像模块开发需等待产品提供埋点规范$v2.3$” --- ### 三、模板示例 ```markdown # 张三第一周周报(2024/02/26 - 2024/03/01) ## 一、本周工作 1. 参与「智能客服系统」迭代开发 - 完成知识库检索接口$RESTful$化改造 - 修复历史会话导出乱码问题(字符集强制转为UTF-8) - 代码Review通过率$100\%$(累计提交$4$个PR) 2. 环境与工具学习 - 掌握内部微服务调用规范$(gRPC+Protobuf)$ - 配置完成开发环境$(Docker Compose部署MySQL 8.0+Redis 6.2)$ ## 二、学习进展 - 精读《Clean Architecture》第1-3章 - 完成Kafka基础操作培训(创建Topic/消费组管理) ## 三、下周计划 1. P0:实现知识库版本回滚功能 2. P1:学习Prometheus监控集成方案 3. P2:优化单元测试覆盖率至$80\%$ ## 四、问题反馈 - 当前接口文档未更新至最新版本(/api/v3/search缺失threshold参数说明) ``` --- ### 四、扩展建议 - **可视化补充**:使用甘特图展示任务进度(可用Mermaid语法) ```mermaid gantt title 任务进度 section 第一周 环境搭建 :done, des1, 2024-02-26, 2d 接口改造 :active, des2, 2024-02-28, 3d ``` - **技术深度**:对复杂问题附加推导过程 “选择$SHA-256$而非$MD5$算法,因碰撞概率从$2^{128}$提升至$2^{256}$” --- 按此框架撰写周报,既能展示工作成果,也体现结构化思维能力,建议每周五下班前提交至直属上级与企业微信全员群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值