跳至主要內容
格式化输出——cpp

c++获取数组中最大值

int a[n];
*max_element(a,a+n);

保留小数

printf("%.2f"%90.5)->90.50(不适用于保留1位小数)


LPrincess小于 1 分钟ACMalgorithm
格式化输出——py

Python就是要多实践,不懂就举个例子试试,多试试,才能懂这些函数是干什么的

保留两位小数,如90.50

print("%0.2f"%90.5)

LPrincess大约 1 分钟ACMalgorithm
QP+位运算

位运算,快速幂

前景提要:模运算(mod)

注意:有关取模运算,n%mod—>若n>abs(mod)则n%mod=0;

//加法取模
(a+b)%mod=(a%mod+b%mod)%mod;
//乘法取模
(a*b)%mod=(a%mod*b%mod)%mod;
//减法取模
(a-b)%mod=(a%mod-b%mod+mod)%mod;
//除法取模(特殊)
//规则1:当a能整除b时
(a/b)%mod=a%(b*mod)/b;
//规则2:无论a是否可以整除b,当b和mod互质(b和mod很少不互质) or a不能整除b
(a/b)%mod=a*qp(b,mod-2,mod)%mod;


LPrincess大约 4 分钟ACMalgorithm
C++ STL模板——题单#2

C++ STL模板——题单#2

1.容器适配器——(stack)栈与(queue)队列

//stack
stack<int> s;
stack< int, vector<int> > st;  //覆盖基础容器类型,使用vector实现st
s.empty();  //判断stack是否为空,为空返回true,否则返回false
s.size();   //返回stack中元素的个数
s.pop();    //删除栈顶元素,但不返回其值
s.top();    //返回栈顶元素的值,但不删除此元素
s.push(item);   //在栈顶压入新元素item


//queue
queue<int> q; 
q.empty();  //判断队列是否为空
q.size();   //返回队列长度
q.push(item);   //队尾压入一个新元素
q.front();  //返回队首元素的值,但不删除该元素
q.back();   //返回队尾元素的值,但不删除该元素
q.top();    //返回具有最高优先级的元素值,但不删除该元素

LPrincess大约 5 分钟ACMalgorithm
LPrincess's App

android课设记录一下制作过程

SDK:API24("Nougat";Android 7.0) Win10 -> Win11

Win10 -> Win11

详细代码在GitHub:https://github.com/L-mj0


LPrincess大约 19 分钟androidBlog
HKCERT CTF 2024 write up

第二次參加HKcert,體驗感拉滿,只能說今年的題,比去年難太多了Orz😵‍💫

附上今年的戰績

Misc

Get Flag Yourself (50 points)


LPrincess大约 12 分钟ctfmisc
第八届强网杯WriteUp_2024

Misc

谍影重重5.0

题目内容:

我国某部门已经连续三年对间谍张纪星进行秘密监控,最近其网络流量突然出现大量的神秘数据,为防止其向境外传送我国机密数据,我们已将其流量保存,请你协助我们分析其传输的秘密信息。 附件


LPrincess大约 5 分钟ctfmisc
ComfyUI

ComfyUI配置

git clone https://github.com/comfyanonymous/ComfyUI

因为之前已经装过sd-webui,并且想复用它的大模型,则可以先找到..\comfy-UI\extra_model_paths.yaml.example这个文件。首先去掉.example后缀然后用任何你喜欢的文本编辑器修改这个文件。找到a111,修改base_path,改为你实际的webui安装路径(此例中我的webui在..\sd-webui-aki-v4.9下)


LPrincess大约 3 分钟aiimage
Lora微调原理

学习Lora笔记

👉:b站大学

什么是微调

LoRA(Low-Rank Adaptation)是一种轻量级微调技术,微调技术的本质是在已有的预训练模型基础上进行一定的改动。


LPrincess大约 4 分钟ailora
NSSCTF 3rd —— Cainの秘密图片姬

根据题目,猜想应该是跟图像相关对抗网络

查看 train.py,根据经验直到应该是梯度攻击

import torch
import torch.nn as nn
import torch.optim as optim
import torchvision.transforms as transforms
import numpy as np
from PIL import Image
import torch.nn.functional as F

class tanji_model(nn.Module):
    def __init__(self):
        super(tanji_model, self).__init__()
        self.classifier = nn.Sequential(
            nn.Linear(31 * 31, 512),
            nn.ReLU(),
            nn.Linear(512, 128),
            nn.ReLU(),
            nn.Linear(128, 1),
        )

    def forward(self, x):
        x = torch.flatten(x, 1)
        y = self.classifier(x)
        return torch.sigmoid(y)

# 加载与训练模型文件model.pth
tanji = tanji_model().cpu()
tanji.load_state_dict(torch.load('model.pth'))
tanji.eval()
print(tanji)

# 创建一个跟flag一样的空白图片
flag_size = (31, 31)
img = torch.zeros((1, 1, * flag_size), requires_grad = True)
# 设置优化器
optimizer = optim.Adam([img], lr=0.001)

for i in range(10000):
    # 把梯度置零
    optimizer.zero_grad()
    output = tanji(img)
    # 计算损失 _ 最小化负对数似然损失
    loss = -torch.log(F.sigmoid(output))
    # 反向传播
    loss.backward()
    # 更新参数
    optimizer.step()
    with torch.no_grad():
        img.clamp_(0, 1)
    if i % 100 == 0:
        print(f'Iteration {i}, Loss: {loss.item()}')

# 保存图片
optimized_image = transforms.ToPILImage()(img.squeeze(0))
# optimized_image = transforms.ToPILImage()(img[0].cpu()).save('flag.png')
optimized_image.show()
optimized_image.save('flag.png')

LPrincess大约 2 分钟ctfmiscai
2
3
4
5