杭电第三场

RGB渐变颜色转换公式及例程 设Step=51,将RGB(255,0,0)颜色渐变为RGB(0,255,0),即RGB(255,0,0)经过51次颜色渐变转为RGB(0,255,0);设Step=51,将RGB(0,255,0)颜色渐变为RGB(0,0,255),即RGB(0,255,0)经过51次颜色渐变转为RGB(0,0,255);设Step=51,将RGB(0,0,255)颜色渐变为RGB(255,0,0),即RGB(0,0,255)经过51次颜色渐变转为RGB(255,0,0);分步骤的方式,使其渐变色循环整个颜色值; 阅读详情

Photoshop Layers

请添加图片描述
题意
有三个灯 R G B(默认初始为0 0 0)
对这个灯进行两种操作,一种是在现在的灯的基础上加上给出的数,并且和255取小
另一种则是将给出的数赋给R G B,这些数是以16进制的字符串给出的
题解
对于这个问题我们可以按一的多少对整个集合进行划分,对每一个划分进行前缀和操作,由于每一次的一都是赋值操作,所以只要查询范围内有一的存在,就可以直接输出r
如果没有一的存在,就可以用前缀和的思想r-(l-1)得到答案,由于下标在集合中一定是单调的,我们可以通过二分搜索得到离l最近的第一个1的位置;注意的是,l的值可能大于最后的一个1出现的位置,这个时候二分会越界,我们需要特殊判断;

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<iomanip>
using namespace std;
int t, n, q;
int sj(char a, char b) {
	int x=0, y=0;
	if (a >= '0' && a <= '9')x = (a - '0') * 16;
	else if (a >= 'A' && a <= 'Z')x =  (a - 'A' + 10) * 16;
	if (b >= '0' && b <= '9')y = (b - '0');
	else if (b >= 'A' && b <= 'Z')y = (b - 'A' + 10);
	return x + y;
}
string s;
int x;
void solve() {
	cin >> n >> q;
	vector<int>stk;
	vector<vector<int>>a(3, vector<int>(n+1));
	for (int i = 1; i <= n; i++) {
		cin >> x >> s;
		if (x == 1) {
			stk.emplace_back(i);
			a[0][i] = sj(s[0], s[1]);
			a[1][i] = sj(s[2], s[3]);
			a[2][i] = sj(s[4], s[5]);
		}
		else {
			a[0][i] += sj(s[0], s[1]) + a[0][i - 1];
			a[1][i] += sj(s[2], s[3]) + a[1][i - 1];
			a[2][i] += sj(s[4], s[5]) + a[2][i - 1];
		}
	}
	while (q--) {
		int l, r; 
		cin >> l >> r;
		if (l > stk[stk.size() - 1]) {
			cout << hex << uppercase << setw(2) << setfill('0') << min(a[0][r] - a[0][l - 1], 255) << setw(2) << setfill('0') << min(a[1][r] - a[1][l - 1], 255) << setw(2) << setfill('0') << min(a[2][r] - a[2][l - 1], 255) << endl;
		}
		else {
			int u = lower_bound(stk.begin(), stk.end(), l) - stk.begin();
			if (stk[u] <= r ) {
				cout << hex << uppercase << setw(2) << setfill('0') << min(a[0][r], 255) << setw(2) << setfill('0') << min(a[1][r], 255) << setw(2) << setfill('0') << min(a[2][r], 255) << endl;
			}
			else {
				cout << hex << uppercase << setw(2) << setfill('0') << min(a[0][r] - a[0][l - 1], 255) << setw(2) << setfill('0') << min(a[1][r] - a[1][l - 1], 255) << setw(2) << setfill('0') << min(a[2][r] - a[2][l - 1], 255) << endl;
			}
		}
		
	}
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin.exceptions(ios::badbit | ios::failbit);
	cin >> t;
	while(t--)solve();
}

Game on Plane

请添加图片描述
题意
给出了n条直线,Alice可以选择1到n条直线,Bob需要画一条线,与Alice选的线的交点就是对Bob的惩罚值,Bob想要惩罚最少而Alice想要惩罚最多;
解题方法
由于Alice想要惩罚最多,所以Alice会选择斜率尽可能不同的点,而Bob会选择画一条与Alice选择直线中平行线最多的那组线的平行线;
所以Alice应该选择尽可能不平行的边 我们就可以将线按照斜率记录下来,统计到一个数组中,然后找出不平行的组,Alice一定会一组一组的选并且选择下一组时会将上一组选完;
这里由于斜率可能会出现小数,导致结果不准确,所以我们用(x,y)来表示它的斜率(学到了)

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<iomanip>
#include<map>
#include<memory.h>
using namespace std;
int t, n;
const int N = 100010;
pair<int, int>a[N];
int f[N];
int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}
void solve() {
	cin >> n;
	int x11, y11, x22, y22;
	for (int i = 1; i <= n; i++) {
		cin >> x11 >> y11 >> x22 >> y22;
		if (x11 == x22)a[i] = { 0,1 };
		else if (y11 == y22)a[i] = { 1,0 };
		else {
			int dx = x22 - x11, dy = y22 - y11;
			if (dx < 0)dx = -dx, dy = -dy;
			int d = gcd( abs(dx), abs(dy));
			dx /= d,dy /= d;
			a[i] = { dx,dy };
		}
	}
	sort(a + 1, a + n + 1);//便于统计同斜率的有多少;
	memset(f, 0, n + 10);
	int i, j;
	for (i = 1; i <= n; i=j) {
		for (j = i; j <= n && a[i] == a[j]; j++);
		for (int k = 1; k <= j - i; k++)f[k]++;
	}
	for (i = j = 1; i <= n; i++) {
		if (f[j]==0)j++;
		f[j]--;
		cout << (i - j) << endl;
	}
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin.exceptions(ios::badbit | ios::failbit);
	cin >> t;
	while(t--)solve();
}

Rise in Price(待补)

请添加图片描述
看了标程还是没有搞懂(先放标程待补)

#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
typedef vector<P>V;
const int N=105;
int Case,n,m,i,j,k,a[N][N],b[N][N];ll ans;V f[N][N];P pool[1000005];
inline void ext(const P&t){
  while(m&&pool[m].second<=t.second)m--;
  if(!m||pool[m].first<t.first)pool[++m]=t;
}
inline void merge(const V&A,const V&B,V&C){
  int ca=A.size(),cb=B.size(),i=0,j=0;
  m=0;
  while(i<ca&&j<cb)ext(A[i].first<B[j].first?A[i++]:B[j++]);
  while(i<ca)ext(A[i++]);
  while(j<cb)ext(B[j++]);
  C.resize(m);
  for(i=0;i<m;i++)C[i]=pool[i+1];
}
int main(){
  scanf("%d",&Case);
  while(Case--){
    scanf("%d",&n);
    for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&a[i][j]);
    for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&b[i][j]);
    f[1][1].resize(1);
    f[1][1][0]=P(a[1][1],b[1][1]);
    for(i=1;i<=n;i++)for(j=1;j<=n;j++){
      if(i==1&&j==1)continue;
      if(i==1)f[i][j]=f[i][j-1];
      else if(j==1)f[i][j]=f[i-1][j];
      else merge(f[i-1][j],f[i][j-1],f[i][j]);
      for(k=0;k<f[i][j].size();k++){
        f[i][j][k].first+=a[i][j];
        f[i][j][k].second+=b[i][j];
      }
    }
    ans=0;
    for(i=0;i<f[n][n].size();i++)ans=max(ans,1LL*f[n][n][i].first*f[n][n][i].second);
    printf("%lld\n",ans);
  }
}
利用PWM技术控制RGB灯变色和呼吸 本程序可实现全彩灯1600万色的变化及自定义色彩的呼吸效果 立即下载

相关推荐

RGB三色渐变彩灯

int led1 = 9; int led2 = 10; int led3 = 11; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); } void setColor(int red,int green,int blue) { analogWrite(led1,255-red); analogWrite(led2,255-green); analogWrite(led3,255-blue); } void loop() { int i,j; for(i=0,j=255;i<256;i++) { setColor(i,j,0); delay(4); j--; } delay(100); //绿色向红色渐变 for(i=0,j=255;i<256;i++) { setColor(j,0,i); delay(4); j--; } delay(100); //红色向蓝色渐变 for(i=0,j=255;i<256;i++) { setColor(0,i,j); delay(4); j--; } delay(100); //蓝色向绿色渐变 }

【嵌入式软件方案】基于色坐标的RGB灯调光调色算法

如果想要驱动一个三基色LED灯亮出不同的颜色,只需要控制三路PWM的输出即可实现。但是如何控制三路的输出使三基色LED灯亮出我们想要得到的理想目标颜色并且只有很小的色差就没有那么简单了。本文将介绍一种基于色坐标的三基色LED调光算法。

本博客专注于嵌入式软件领域技术分享。 1万+

dbt+Snowflake实战:数据建模、权限隔离与性能优化全指南

dbt(data build tool)作为现代数据栈的核心建模工具,其与Snowflake的深度协同远不止于SQL编译执行——它本质是将软件工程实践(如版本控制、测试驱动、CI/CD)注入数据交付流程。理解dbt的声明式建模原理与Snowflake的虚拟仓库、Time Travel、TRANSIENT表、聚簇键等底层机制如何咬合,是实现可维护、可审计、低成本数据产品交付的关键。本文聚焦dbt在Snowflake环境中的真实落地挑战,涵盖schema与warehouse的物理映射设计、role级硬隔离策略、

weixin_34389926的博客 314

基于RGB颜色空间的算法

年份 论文题目 作者 论文内容 1999 A statistical approach for real-time robust background subtraction and shadow detection T Horprasert, D Harwood, LS Davis 还没看

想当运维的程序猿 2805

Zabbix7.4监控系统在Rocky Linux10.0上的完整部署流程(含MariaDB配置)

本文详细介绍了在Rocky Linux 10.0操作系统上部署企业级监控系统Zabbix 7.4的完整流程,并重点阐述了与MariaDB数据库的深度集成与性能优化配置。内容涵盖从系统环境准备、数据库安装与安全加固、Zabbix核心组件部署,到服务配置、Web界面初始化以及生产环境高级调优的全方位实战指南,旨在帮助用户构建稳定高效的监控平台。

weixin_29200741的博客 328

LangChain开发避坑指南:为什么Pylance总提示‘无法解析导入‘?实测7种修复方案

本文深入解析了在VS Code中使用LangChain开发时,Pylance频繁提示‘无法解析导入’的根本原因——Python解释器与语言服务器的环境路径不一致。文章提供了从基础排查到深度配置的7种实测修复方案,包括切换解释器、配置extraPaths、使用pyrightconfig.json等,旨在帮助开发者彻底解决此问题,提升AI应用开发效率。

weixin_28826521的博客 444

STM32实战③RGB渐变

1 简介 本实验实现RGB灯的颜色渐变,从红慢慢过渡到绿,再慢慢过渡到蓝,再慢慢过渡到红。其原理是通过查表的方法给三个通道不同的pwm,从而改变颜色。 2 硬件 使用野火指南者开发板。 2.1 RGB RGB灯由红蓝绿三个小灯构成,使用PWM控制是可以混合成256种不同的颜色。STM32的三个引脚需要选择具有定时器输出通道功能,而不是任意的GPIO口。本次实验使用PB5、PB0及PB1引脚,分别是定时器TIM3的通道2,3,4。 PB5对应红色R,PB0对应绿色G,PB1对应蓝色B。 3 软件设计

Malidong的博客 1万+

iOS WKWebView H5微信支付跳转

iOS WKWebView H5微信支付跳转 需求:iOS客户端实现嵌入H5进行微信支付跳转到微信客户端,支付完成后再跳转回我们的APP,解决WKWebView无法跳转回APP的BUG. 阅读前提: 了解WKWebView基本初始化及使用 了解如何利用URL Schemes进行应用间跳转 公司或个人已经在微信后台注册了一级域名 GitHub地址(附代码) :iOS WKWebView H5微信支付跳转 简书地址 :iOS WKWebView H5微信支付跳转 博客地址 :iOS WKWe...

ForeverMyheart的博客 2046

HSV2RGB一种灯光渐变实现算法

我们在做RGB灯光控制时,经常需要实现一种光线柔和渐变的过程.简单的都是用RGB三原色变化,但这种效果差强人意.通过HSV颜色模型则可以实现非常好的渐变效果.这里贴出主要实现代码.功能已在STM8的量产产品上实现,效果非常不错.

凯特空间 2154

光学传播仿真软件:SPEOS_(14).建筑物内光环境仿真

在建筑物内光环境仿真中,材料属性的定义直接影响光的传播和反射效果。SPEOS提供了丰富的材料库,但也可以自定义材料属性以满足特定需求。创建新材料选择Materials->。输入材料名称和类型。配置材料属性选择材料对象,打开属性编辑器。设置反射率、透射率、表面粗糙度和颜色。# 导入SPEOS模块# 创建新材料# 配置材料属性custom_material.set_reflectivity(0.8) # 设置反射率为0.8。

kkchenjj的博客 1248

Unity 实战项目 ☀️| 只用一个脚本做一个 刮刮乐 案例,一不小心刮出来一个女朋友!【学习娱乐一下】

只用一个脚本做一个刮刮乐,一不小心刮出来一个女朋友!【学习娱乐一下!】

努力前行,总会成为自己心中的那道光 23万+

杭电多校第三场

杭电多校第三场 1

海边拾贝,沧海一粟 651

机器学习特征选择-t检验

在特征选择的过程中通过计算检验统计量值,比较特征之间的统计量的大小,并降序排列,选取统计值较高的特征,从而起到去除差别小的特征(此差别小的特征难以区分不同的额类别)的目的。 以t检验(Student's t test)为例: 假设检验 通过比较两类样本的随机变化,通过计算其p值决定是否拒绝零假设,也即是说:通过计算p值,若p值小于某一阈值则认为两个样本具有显著差异,两个样本是不同的,此时拒绝...

heda3的博客 6700

25杭电春季第三场

lucas定理,按位贪心给一堆组合数,每个组合数n是固定的,k在0Li​范围内,要他们乘起来模2余1,问有多少种方案,乘起来余数是1,也就是每一个余数都是1。组合数模2余1,根据lucas定理的推论,Cnk%21等价于nkk。具体分析一下,如果n在某一位是1k在这一位也必须是1,如果n在某一位为0,k在这一位随意。总的方案数就是每一个组合数的方案数乘起来,所以关键是求给定nk在0Li​内,有多少个k满足nkk。

Maxwell_Newton的博客 1133

YOLOv8n轻量化实战:10分钟打通实时摄像头目标检测,附参数调优与避坑指南

本文介绍了如何快速入门YOLOv8目标检测框架,通过摄像头实战实现实时检测。YOLOv8凭借轻量化架构和跨平台优势,是新手入门的理想选择。文章详细讲解了环境搭建(1分钟完成)、核心代码逻辑(3分钟掌握)以及性能调优技巧(3分钟进阶),提供可直接运行的代码示例。重点包括:模型选择(优先yolov8n.pt)、摄像头参数优化、置信度阈值调整、检测类别指定等实用技巧,帮助开发者快速实现10-15FPS的实时检测效果,并针对不同场景提供优化建议。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 370

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

25杭电暑期第三场

思维 模拟找一个序列,满足单增,且每个位置都有上下界的约束,问是否存在一个序列和等于M?单增,那么ai​大于他前面所有元素,而前面所有元素都大于各自的下界,所以ai​大于他前面所有下界。同理ai​小于他后面所有元素,而后面所有元素都小于各自的上界,所以ai​也小于后面所有上界对上界最后缀min,下界做前缀max,即可得到每个位置最后总的约束,如果任意位置下界大于上界则无解。

Maxwell_Newton的博客 712

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2019杭电多校训练营(第三场)

Rank Solved A B C D E F G H I J k 40/875 4/11 . . . O . O O . O . O O: 当场通过 Ø: 赛后通过 .: 尚未通过 A Azshara’s deep sea B Blow up the city C Yukikaze and Demons D Distribution of books E Easy Math ...

wang_viscaria的博客 365

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

2019杭电多校第三场1007 HDU-6609 Find the answer

2019杭电多校第三场1007 HDU-6609 Find the answer 题意:从第一项到第i项的前缀和,如果大于K,问最少删除多少个[1,i]区间内的元素才能小于等于K。因为一共有N个数,所以有N个前缀和,要输出N个值。 PS:最后一个数后面也有空格,这个真的过分。 题解: 建一颗空的[1,n]线段树(用来维护值的个数和总和)。因为第一个数一定符合(<=K),所以直接输出第一个0,...

weixin_43843730的博客 253

2019.7.29 杭电多校第三场小结

index > 杭电多校第三场 题号 标题 AC 做法 状态 6603 Azshara’s deep sea (51/150)34.00% 6604 Blow up the city (213/425)50.12% 6605 Yukikaze and Demons (25/181)13.81% 6606 Distribution of books (...

TieWay59的博客 441

Fansblog(杭电多校第三场F题) 威尔逊定理+素数间隔

** Fansblog(杭电多校第三场F题) ** 题目描述: Farmer John keeps a website called ‘FansBlog’ .Everyday , there are many people visited this blog.One day, he find the visits has reached P , which is a prime number.He...

qq_fairy橙 的博客 238

2021杭电多校第三场

Game on Plane 考的是斜率和找规律相关。由题意可得,Alice 的最优策略是选出 k 条斜率尽可能不同的直线,而 Bob 的最优策略是避开斜率出现次数最多的直线,因此可考虑用 pair 将每条直线的斜率都进行标记,同时统计出现过的不同的斜率个数。 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; typedef pair<int,int> pii; int n; pii a[N

weixin_46554592的博客 58

2022“杭电杯”中国大学生算法设计超级联赛第三场

2022“杭电杯”中国大学生算法设计超级联赛第三场

Gouzhong123的博客 159

2019杭电多校第三场

2019杭电多校第三场 1002. Blow up the city upsloved 有一个DAG,出度为\(0\)的点是指挥中心,\(q\)次询问,每次给出两个点,这两个点存有关键物资,你可以炸掉一个点和它的邻接边,使得这两个点中任意一个点的物资不能到达指挥中心(有一个点不能到达任意一个指挥中心即可),求方案数,询问独立 并不会支配树,比赛的时候想到了这个东西的概念,但是不会实现,赛...

a8786的博客 267

2022杭电多校第三场题解

2022“杭电杯”中国大学生算法设计超级联赛(3)

weixin_46155777的博客 340
上一篇: 牛客第四场
下一篇: 杭电多校四
阿汤太菜了
博客等级 码龄6年 4粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值