- Pell数列
key
- @ 2025-7-31 15:04:09
#include<iostream>
using namespace std;
int main(){
int T;
cin>>T;
int f[1000010];
f[1]=1;
f[2]=1;
for(int i=2;i<=1000000;i++){
f[i]=(f[i-1]*2+f[i-2])%32767;
}
while(T--){
int x;
cin>>x;
cout<<f[x]<<endl;
}
return 0;
}
2 条评论
-
吕梓锐 LV 7 @ 2025-8-1 11:08:52efitoiortiperowpowoprteeporepooposbitowritp
-
@ 2025-7-31 15:29:07import socket import threading import tkinter as tk from tkinter import scrolledtext, Entry, Button, END, DISABLED, NORMAL class ChatApp: def __init__(self, root): self.root = root self.root.title("局域网聊天室") self.root.geometry("500x400") # 创建GUI组件 self.chat_display = scrolledtext.ScrolledText(root, state='disabled') self.chat_display.pack(padx=10, pady=10, fill=tk.BOTH, expand=True) self.message_entry = Entry(root, width=40) self.message_entry.pack(padx=10, pady=5, side=tk.LEFT, expand=True, fill=tk.X) self.send_button = Button(root, text="发送", command=self.send_message) self.send_button.pack(padx=10, pady=5, side=tk.RIGHT) # 绑定回车键 self.root.bind('<Return>', lambda event: self.send_message()) # 设置UDP套接字 self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) # 本地IP地址获取 self.local_ip = self.get_local_ip() self.broadcast_port = 5555 # 客户端列表和用户名 self.clients = {} self.username = f"用户-{self.local_ip.replace('.', '-')[-4:]}" # 启动接收线程 self.receive_thread = threading.Thread(target=self.receive_messages) self.receive_thread.daemon = True self.receive_thread.start() # 显示欢迎消息 self.update_chat("系统", f"欢迎加入聊天室!\n你的用户名: {self.username}\n本地IP: {self.local_ip}") def get_local_ip(self): """获取本机局域网IP地址""" try: # 连接到公共DNS服务器以获取本地IP s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) local_ip = s.getsockname()[0] s.close() return local_ip except: return "127.0.0.1" def send_message(self): """发送消息到广播地址""" message = self.message_entry.get().strip() if message: full_message = f"{self.username}: {message}" try: self.sock.sendto(full_message.encode('utf-8'), ('<broadcast>', self.broadcast_port)) self.update_chat(self.username, message, is_self=True) self.message_entry.delete(0, END) except Exception as e: self.update_chat("系统", f"发送失败: {str(e)}") def receive_messages(self): """接收广播消息""" while True: try: data, addr = self.sock.recvfrom(1024) message = data.decode('utf-8') # 检查是否是自己发送的消息,避免重复显示 if message.startswith(self.username + ":"): continue # 更新聊天界面 self.root.after(0, lambda m=message: self.update_chat("他人", m)) # 记录活跃用户 if addr[0] != self.local_ip: # 排除自己 self.clients[addr[0]] = True # 显示当前在线用户 self.update_clients_list() except Exception as e: print(f"接收消息错误: {e}") break def update_chat(self, sender, message, is_self=False): """更新聊天显示区域""" self.chat_display.config(state=NORMAL) if not is_self: self.chat_display.insert(END, f"[{sender}] {message}\n") else: self.chat_display.insert(END, f"我: {message}\n") self.chat_display.see(END) self.chat_display.config(state=DISABLED) def update_clients_list(self): """更新在线用户列表""" # 获取当前在线客户端数量 client_count = len(self.clients) client_list = ", ".join(self.clients.keys()) if client_count > 0 else "无" # 在聊天窗口显示在线用户信息 self.chat_display.config(state=NORMAL) current_time = tk.datetime.datetime.now().strftime("%H:%M:%S") self.chat_display.insert(END, f"\n[{current_time}] 当前在线用户: {client_count}人 ({client_list})\n") self.chat_display.see(END) self.chat_display.config(state=DISABLED) if __name__ == "__main__": root = tk.Tk() app = ChatApp(root) root.mainloop() ```
- 1
信息
- ID
- 193
- 时间
- ms
- 内存
- MiB
- 难度
- 7
- 标签
- 递交数
- 149
- 已通过
- 38
- 上传者