李澄瑞
mixly遥控风扇
李澄瑞 发表于2026-08-19 浏览103 评论0
#include <IRremote.h>
const int IR_RECV_PIN = A0;
const int FAN_PIN_A2 = A2;
const int FAN_PIN_A3 = A3;
IRrecv irrecv(IR_RECV_PIN);
decode_results results;
bool fanState = false;
// 你的按键码 FFA25D
const unsigned long TARGET_KEY = 0xFFA25D;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(FAN_PIN_A2, OUTPUT);
pinMode(FAN_PIN_A3, OUTPUT);
digitalWrite(FAN_PIN_A2, LOW);
digitalWrite(FAN_PIN_A3, LOW);
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.print("收到码值 HEX: ");
Serial.println(results.value, HEX);
// ✅过滤NEC长按重复码 0xFFFFFFFF,只有真正按键才执行
if(results.value != 0xFFFFFFFF)
{
if (results.value == TARGET_KEY)
{
fanState = !fanState;
if (fanState)
{
digitalWrite(FAN_PIN_A2, HIGH);
digitalWrite(FAN_PIN_A3, HIGH);
Serial.println("👉风扇开启 A2 A3 = HIGH");
}
else
{
digitalWrite(FAN_PIN_A2, LOW);
digitalWrite(FAN_PIN_A3, LOW);
Serial.println("👉风扇关闭 A2 A3 = LOW");
}
}
}
irrecv.resume();
}
}李澄瑞
洛谷p1983
李澄瑞 发表于2026-07-30 浏览265 评论0
#include<iostream>
#include<cstdio>
#include<cstring>
#define ZYS 1005
using namespace std;
int n,m,ans,st[ZYS],s,tuopu[ZYS][ZYS],de[ZYS],tt[ZYS],top;
bool is[ZYS],bo[ZYS]; //用andyzys大佬的名字做数组范围
int main() {
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++) {
memset(is,0,sizeof(is));//is表示是否是停靠站
scanf("%d",&s);
for(int j=1;j<=s;j++)
scanf("%d",&st[j]),is[st[j]]=true;
for(int j=st[1];j<=st[s];j++)
if(!is[j]) //枚举站点,若不是已停靠的就小于所有停靠站的等级
for(int k=1;k<=s;k++) //枚举已停靠站点
if(!tuopu[j][st[k]]) tuopu[j][st[k]]=1,de[st[k]]++;//tuopu[i][j]表示j>i的级别,如上
}
do{
top=0;
for(int i=1;i<=n;i++)
if(de[i]==0&&!bo[i]) {
tt[++top]=i,bo[i]=true;//开始将出度为0的点删掉
}
for(int i=1;i<=top;i++)
for(int j=1;j<=n;j++)
if(tuopu[tt[i]][j]) tuopu[tt[i]][j]=0,de[j]--;//去边去点
ans++;
} while(top);
printf("%d",ans-1);//最后一次什么点都没有会多算一次(自行理解)
return 0;
}李澄瑞
米思琪时钟c++代码
李澄瑞 发表于2026-07-30 浏览265 评论0
#include <Wire.h>
#include <TM1650.h>
volatile int 时;
volatile int 分;
volatile int 秒;
TM1650 tm_4display;
void setup(){
时 = 10;
分 = 20;
秒 = 0;
Wire.begin();
tm_4display.init();
pinMode(A5, OUTPUT);
tm_4display.displayOn();
digitalWrite(A5,HIGH);
while (true) {
delay(100);
秒 = 秒 + 1;
if (秒 > 59) {
秒 = 0;
分 = 分 + 1;
if (分 > 59) {
分 = 0;
时 = 时 + 1;
if (时 > 23) {
时 = 0;
}
}
}
tm_4display.displayString(String(String((时 / 10)) + String(((long) (时) % (long) (10)))) + String(String((分 / 10)) + String(((long) (分) % (long) (10)))));
}
}
void loop(){
}