关于我们
未命名
张子祺 发表于2026-08-29 浏览52 评论0
1. 创建常量(不能更改的变量):const
2. N进制+N进制:先加再转十进制
尤皓骏
李豆包78爆了
尤皓骏 发表于2026-08-29 浏览64 评论0
关于我们
未命名
尤皓骏 发表于2026-08-29 浏览61 评论0
关于我们
2024_csp_j 1~15
张子祺 发表于2026-08-29 浏览56 评论0
1.int 数据类型负数:奇数 正数:偶数
2.n进制转十进制:第a位=数值*n的a-1次方
3(a-1)*(b-1)*c*(a+b+c-组数)(最大值)
4.滚木;
5.MB=1024kb KB=1024B B=8 b
MB=1024KB=1024*1024B=1024*1024*8b
6.基本数据类型:可直接用于定义变量
7循环语句:for;while;do-while
关于我们
NOI报名
Very2 发表于2026-08-25 浏览63 评论0
关于我们
洛谷p1043
李澄瑞 发表于2026-08-22 浏览93 评论0
#include<iostream>
using namespace std;
long long a[1001],x[1001],n,m,max1,min1=1000000000000000;
//x为一开始读入的数据,a为便于计算一段之和的前缀和
long long f[101][101][11],f1[101][101][11];
//f数组存最大值,f1数组存最小值
int main(){
cin>>n>>m;
for (int i=1;i<=100;i++)
for (int j=1;j<=100;j++)
for (int k=1;k<=10;k++)
f1[i][j][k]=10000000000;
//先给f1数组赋上巨大的值,便于计算之和的最小值
for (int i=1;i<=n;i++)
{
cin>>x[i];//读入
a[i]+=a[i-1]+x[i];//前缀和
}
//化环为链
for (int i=n+1;i<=n*2;i++) a[i]+=a[i-1]+x[i-n];//前缀和
for (int i=1;i<=n*2;i++)
for (int j=1;j<=n*2;j++)
{
f[i][j][1]=(a[j]-a[i-1]+100000000000)%10;//前缀和求一段数的和
f1[i][j][1]=(a[j]-a[i-1]+100000000000)%10;//前缀和求一段数的和
//因为输入有负数,所以a[j]可能会小于a[i-1],所以我们给他加上巨大值
}
//赋初始值
for (int i=1;i<=n*2;i++)//枚举开始的数字位置
{
for (int j=i+1;j<=n*2;j++)//枚举结束的数字位置
{
for (int l=2;l<=m;l++)//枚举分段的数量
{
for (int k=i;k<j;k++)//枚举中间数的位置
{
f[i][j][l]=max(f[i][j][l],f[i][k][l-1]*f[k+1][j][1]);//动态规划转移方程
f1[i][j][l]=min(f1[i][j][l],f1[i][k][l-1]*f1[k+1][j][1]);//动态规划转移方程
}
}
}
}
for (int i=1;i<=n;i++)
{
max1=max(max1,f[i][i+n-1][m]);//求一段的最大值
min1=min(min1,f1[i][i+n-1][m]);//求一段的最小值
}
cout<<min1<<endl<<max1<<endl;//输出
return 0;
}张子祺
塔防小游戏
张子祺 发表于2026-08-20 浏览99 评论0
汤达友
0820 比比拉布
汤达友 发表于2026-08-20 浏览99 评论0
#include <bits/stdc++.h>
using namespace std;int main(){
sudstr(a,n) //从下标 a取 n个字符
find() //查找子串(从左)
replace(a,n,str) //把从 a起 n个字符替换
insert(a,str) //在下标 a处插入
append(str)//在末尾追加
'A'=65,'a'=97,'0'=48 //ASCLL码
tolower(c) //大写转小写
toupper(c) //小写转大写
//'a'-'A'=32
if(c>='a' && c<='z') //小写
if(c>='A' && c<='Z') //大写
if(c>='0' && c<='9') //数字
//判断字符类型
return 0;} 李澄瑞
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();
}
}关于我们
双向链表
Very2 发表于2026-08-06 浏览332 评论0
//双链表基本运算算法
#include <stdio.h>
#include <malloc.h>
typedef int ElemType;
typedef struct DNode //定义双链表结点类型
{
ElemType data;
struct DNode *prior; //指向前驱结点
struct DNode *next; //指向后继结点
} DLinkNode;
void CreateListF(DLinkNode *&L,ElemType a[],int n)
//头插法建双链表
{
DLinkNode *s;
L=(DLinkNode *)malloc(sizeof(DLinkNode)); //创建头结点
L->prior=L->next=NULL;
for (int i=0;i<n;i++)
{
s=(DLinkNode *)malloc(sizeof(DLinkNode));//创建新结点
s->data=a[i];
s->next=L->next; //将结点s插在原开始结点之前,头结点之后
if (L->next!=NULL) L->next->prior=s;
L->next=s;s->prior=L;
}
}
void CreateListR(DLinkNode *&L,ElemType a[],int n)
//尾插法建双链表
{
DLinkNode *s,*r;
L=(DLinkNode *)malloc(sizeof(DLinkNode)); //创建头结点
L->prior=L->next=NULL;
r=L; //r始终指向终端结点,开始时指向头结点
for (int i=0;i<n;i++)
{
s=(DLinkNode *)malloc(sizeof(DLinkNode));//创建新结点
s->data=a[i];
r->next=s;s->prior=r; //将结点s插入结点r之后
r=s;
}
r->next=NULL; //尾结点next域置为NULL
}
void InitList(DLinkNode *&L)
{
L=(DLinkNode *)malloc(sizeof(DLinkNode)); //创建头结点
L->prior=L->next=NULL;
}
void DestroyList(DLinkNode *&L)
{
DLinkNode *pre=L,*p=pre->next;
while (p!=NULL)
{
free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
bool ListEmpty(DLinkNode *L)
{
return(L->next==NULL);
}
int ListLength(DLinkNode *L)
{
DLinkNode *p=L;
int i=0;
while (p->next!=NULL)
{
i++;
p=p->next;
}
return(i);
}
void DispList(DLinkNode *L)
{
DLinkNode *p=L->next;
while (p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
bool GetElem(DLinkNode *L,int i,ElemType &e)
{
int j=0;
DLinkNode *p=L;
if (i<=0) return false; //i错误返回假
while (j<i && p!=NULL)
{
j++;
p=p->next;
}
if (p==NULL)
return false;
else
{
e=p->data;
return true;
}
}
int LocateElem(DLinkNode *L,ElemType e)
{
int n=1;
DLinkNode *p=L->next;
while (p!=NULL && p->data!=e)
{
n++;
p=p->next;
}
if (p==NULL)
return(0);
else
return(n);
}
bool ListInsert(DLinkNode *&L,int i,ElemType e)
{
int j=0;
DLinkNode *p=L,*s;
if (i<=0) return false; //i错误返回假
while (j<i-1 && p!=NULL)
{
j++;
p=p->next;
}
if (p==NULL) //未找到第i-1个结点
return false;
else //找到第i-1个结点p
{
s=(DLinkNode *)malloc(sizeof(DLinkNode)); //创建新结点s
s->data=e;
s->next=p->next; //将结点s插入到结点p之后
if (p->next!=NULL)
p->next->prior=s;
s->prior=p;
p->next=s;
return true;
}
}
bool ListDelete(DLinkNode *&L,int i,ElemType &e)
{
int j=0;
DLinkNode *p=L,*q;
if (i<=0) return false; //i错误返回假
while (j<i-1 && p!=NULL)
{
j++;
p=p->next;
}
if (p==NULL) //未找到第i-1个结点
return false;
else //找到第i-1个结点p
{
q=p->next; //q指向要删除的结点
if (q==NULL)
return false; //不存在第i个结点
e=q->data;
p->next=q->next; //从单链表中删除*q结点
if (p->next!=NULL) p->next->prior=p;
free(q); //释放q结点
return true;
}
}