GCJ2019 Round1A 题解

Unsloth Desktop 本地大模型微调量化实战指南 大语言模型的本地化定制正在成为开发者与内容创作者的重要需求,而微调与量化则是其中最关键的两项技术。LoRA 与 QLoRA 通过仅训练少量低秩矩阵,大幅降低显存占用和训练成本,让消费级 GPU 也能完成模型适配;GGUF 格式则打通了训练与推理的边界,使微调后的模型可直接接入 Ollama、llama.cpp 等主流推理引擎。本文以 Unsloth Desktop 为切入对象,从其底层加速原理出发,梳理了环境准备、模型加载、对话测试、量化导出、微调验证及 API 批量调用的完整链路,并针对显存优化、端口冲突 阅读详情

A.pylons
小数据暴力,大数据根据ore定理用延长通路法构造解,这里参考了
https://www.cnblogs.com/zhj5chengfeng/p/3233992.html
这篇blog的总结,赛内我犯了sb错误,把下标当数用了当场GG,然后,然后就没了

#include<bits/stdc++.h>
using namespace std;
struct edge{
    int v,nxt;
}e[200000];
int h[405];
int vis[405];
int deg[405];
stack<int>ans;
int cnt=0;
void init(){
    memset(e,-1,sizeof e);
    memset(h,-1,sizeof h);
    memset(vis,0,sizeof vis);
    memset(deg,0,sizeof deg);
    while(!ans.empty())ans.pop();
    cnt=0;
}
void add(int u,int v){
    e[cnt].v=v;
    e[cnt].nxt=h[u];
    h[u]=cnt++;
}
struct Hamilton_Circuit {
    static const int N=405;

    bool G[N][N], vs[N];
    int n, next[N], head, tail;

    void init(int _n) {
        n=_n;
        memset(G, 0, sizeof G);
        for(int i=0;i<_n;i++){
            for(int j=h[i];~j;j=e[j].nxt){
                G[i][e[j].v]=1;
            }
        }
    }
    void DFS_Head(int u) {
        vs[u]=1;
        for(int i=0; i<n; i++) if(G[i][u] && !vs[i]) {
            next[i]=u;
            DFS_Head(i);
            return;
        }
        head=u;
    }

    void DFS_Tail(int u) {
        vs[u]=1;
        for(int i=0; i<n; i++) if(G[u][i] && !vs[i]) {
            next[u]=i;
            DFS_Tail(i);
            return;
        }
        tail=u;
    }

    void Reverse(int u) {
        for(int i=next[u], temp, last=-1; i!=-1; i=temp) {
            temp=next[i];
            next[i]=last;
            last=i;
        }
        int temp=tail;
        tail=next[u];
        next[u]=temp;
    }

    int Find(int u) {
        for(int i=head; i!=-1; i=next[i]) {
            if(G[u][next[i]]) return i;
        }
        return -1;
    }

    bool Extend(int u) {
        if(G[u][head]) {
            next[u]=head;
            return 1;
        }
        int pre=Find(u);
        if(pre==-1) return 0;
        next[u]=next[pre];
        next[tail]=head;
        next[tail=pre]=-1;
        return 1;
    }

    void Solve() {
        memset(next, -1, sizeof next);
        memset(vs, 0, sizeof vs);
        DFS_Head(0), DFS_Tail(0);
        int Len=1;
        for(int i=head; i!=tail; i=next[i], Len++);
        for(int i; 1; ) {
            if(!G[tail][head]) {
                for(i=next[head]; !(G[i][tail] && G[next[i]][head]); i=next[i]);
                Reverse(i);
            }
            if(Len==n) break;
            for(i=0; i<n; i++) if(!vs[i] && Extend(i)) {
                head=i, vs[i]=1, Len++;
                break;
            }
        }
    }

    void PRINT(int c) {
        for(int i=head; head!=0; i=next[i]) {
            next[tail]=head;
            tail=head;
            head=next[head];
            next[tail]=-1;
        }
        for(int i=head; i!=-1; i=next[i]) {
            printf("%d %d\n", i/c+1,(i%c)+1);
            //if(next[i]==-1) printf("1 1\n");
        }
    }
};

Hamilton_Circuit fuck;

int dfs(int rt,int cnt,int n){
    //printf("%d %d\n",rt,cnt);
    if(cnt==n){
        ans.push(rt);
        return 1;
    }
    for(int i=h[rt];~i;i=e[i].nxt)
    {
        int v=e[i].v;
        if(!vis[v]){
            vis[v]=1;
            if(dfs(v,cnt+1,n)){
                ans.push(rt);
                return 1;
            }
            vis[v]=0;
        }
    }
    return 0;
}
int main(){
    int t;
    scanf("%d",&t);
    for(int cas=1;cas<=t;cas++){
        int r,c,n;
        init();
        scanf("%d%d",&r,&c);
        n=r*c;
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                int ux=i/c,uy=i%c;
                int vx=j/c,vy=j%c;
                if(ux==vx||uy==vy||(ux-uy)==(vx-vy)||(ux+uy)==(vx+vy))continue;
                deg[i]++;deg[j]++;
                add(i,j);add(j,i);
            }
        }
        int mn=n;
        for(int i=0;i<n;i++){
            mn=min(mn,deg[i]);
        }
        printf("Case #%d: ",cas);
        if(mn>=n/2){//construct
            puts("POSSIBLE");
            fuck.init(n);
            fuck.Solve();
            fuck.PRINT(c);
        }else{//search
            int f=0;
            for(int i=0;i<n;i++){
                vis[i]=1;
                if(dfs(i,1,n)){
                    f=1;
                    break;
                }
                vis[i]=0;
            }
            if(!f)puts("IMPOSSIBLE");
            else {puts("POSSIBLE");
            while(!ans.empty()){
                int qq=ans.top();
                ans.pop();
                printf("%d %d\n",qq/c+1,(qq%c)+1);
            }
            }
        }
    }
    return 0;
}

B 没看待补

C.Alien Rhyme
反向构造一颗字典树,对于一个节点,这层最多只能分出去一对,那么当前子树如果<4个就直接分割出去一对,dfs跑一跑就好了

#include<bits/stdc++.h>
using namespace std;
struct node{
    int c[26];
    int ans;
    int sum;
}tree[100000];
int cnt=0;
char str[55];
void init(){
    memset(tree,0,sizeof tree);
    cnt=0;
}
void Insert(int rt,int p){
    tree[rt].sum++;
    if(p==-1)return;
    int q=str[p]-'A';
    if(tree[rt].c[q]){
        Insert(tree[rt].c[q],p-1);
    }else{
        tree[rt].c[q]=++cnt;
        Insert(cnt,p-1);
    }
}
void solve(int rt){
    if(rt&&tree[rt].sum<=3){
        tree[rt].ans=tree[rt].sum/2;
        return ;
    }
    for(int i=0;i<26;i++){
        int son=tree[rt].c[i];
        if(!son)continue;
        solve(son);
        tree[rt].ans+=tree[son].ans;
    }
    int lft=tree[rt].sum-(tree[rt].ans<<1);
    if(rt&&lft>=2){
        tree[rt].ans++;
    }

}
int main(){

    int t;
    scanf("%d",&t);
    for(int cas=1;cas<=t;cas++){
        int n;
        init();
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s",str);
            Insert(0,strlen(str)-1);
        }
        solve(0);
        printf("Case #%d: %d\n",cas,tree[0].ans*2);
    }
    return 0;
}

【异常】Claude Code 在 Windows CMD 中出现重影现象的排查与解决 Windows CMD运行Claude Code时出现文字重影、乱码等问题,原因是传统CMD对现代ANSI终端控制序列支持不足。解决方案包括:1)推荐安装Windows Terminal(完全支持ANSI标准);2)使用PowerShell 7;3)优化CMD设置(启用虚拟终端、UTF-8编码);4)关闭Claude Code视觉特效。建议优先使用Windows Terminal以获得最佳体验,这是最彻底的解决方案。其他方案仅能部分改善或缓解问题。 阅读详情

相关推荐

c#.net使用正则表达式验证文本中是否包含手机号码或电话号码?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Collections; namespace RegularPhoneApp { class Program

码农 3584

【算法】GCJ2019 Cryptopangrams

这里写自定义目录标题GCJ2019 Cryptopangrams题目:解题思路实现代码 GCJ2019 Cryptopangrams 题目: 出题人随机选了26个不超过N的素数,按照从小到大排列,把每个素数分给起对应的字母,得到了一个由大写字母到这26个素数的一个bijection。然后出题人通过这个bijection对一段message加密,加密过程为 (1)把每个字符替换成其对应的素数,得到一...

无良剑&染的博客 321

VSAN闪存缓存磁盘故障处理指南-RAID0模式实战解析

本文详细解析了VSAN集群中RAID0模式下的闪存缓存磁盘故障处理全流程。通过模拟真实故障场景,从告警识别、数据重建策略到磁盘组重构,提供了手把手的实战操作指南,并深入探讨了RAID0缓存故障的独特影响与风险,为运维人员应对此类高性能存储架构的突发问题提供了专业解决方案。

assembly8low的博客 444

GCJ2019 Round1B 题解

A.Manhattan Crepe Cart 维护两个轴的到达数,其实就是区间加,做一个差分前缀和就可以了,复杂度O(p+q)O(p+q)O(p+q) #include<bits/stdc++.h> using namespace std; const int maxn = 100050; int x[maxn],y[maxn]; int dx[maxn],dy[maxn]; void...

IDrandom的专栏 510

Elasticsearch连接中断:深入解析Connection reset by peer问题及优化策略

本文深入解析Elasticsearch连接中断问题,特别是Connection reset by peer错误的成因与解决方案。从TCP层的心跳机制到客户端与服务端的配置差异,详细介绍了网络不稳定、防火墙拦截等常见原因,并提供了六种优化策略,包括KeepAlive调整、TCP参数调优和智能重试机制等,帮助提升Elasticsearch连接的稳定性。

weixin_42546392的博客 410

时序约束实战:从setup/hold到时钟路径约束的深度解析

本文深度解析数字设计中的时序约束实战,重点探讨如何从setup/hold检查的核心原理出发,理解并应用时钟路径约束。文章通过剖析Path Requirement的计算逻辑,结合同频、倍频及异步时钟域等典型场景,提供了从解读时序报告到编写、调试SDC约束的系统方法,帮助工程师有效应对复杂SoC设计中的时序收敛挑战。

weixin_29291185的博客 105

Google Code Jam 2019 Round 1A 题解

A.Alien Rhyme 题意: 思路:将字符反向插入一颗Trie,然后自下而上的贪心即可,即先选后缀长的,再选后缀短的。 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <iomanip> 5 ...

weixin_30790841的博客 380

保研专业课复习别瞎卷!抓住408和数学重点,用真题反推高效复习路径

本文针对计算机专业保研学生,提出以真题为导向的408专业课和数学高效复习策略。通过构建真题知识图谱、分析题型与难度矩阵,帮助考生精准把握数据结构、操作系统等核心科目的高频考点,如树与图算法、TCP/IP协议栈等,并制定科学的时间分配方案,实现短期内的快速突破。

weixin_27966471的博客 402

洛谷1423 小玉在游泳

洛谷1423 小玉在游泳 本题地址:http://www.luogu.org/problem/show?pid=1423 题目描述 小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。 输入...

weixin_30719711的博客 1107

【AI 编程工具】Codex配置部署指南

目录一、环境准备与基础安装1. 系统兼容性检查2. 前置依赖安装3. 安装方式选择二、API密钥配置与认证1. 获取API密钥2. 配置文件设置3. 临时配置方式三、沙盒环境配置与安全策略1. 沙盒模式选择2. 安全最佳实践四、高级功能配置1. 模型上下文协议(MCP)配置2. 模型版本切换3. 自定义网关配置五、常见问题排查1. 安装失败2. API调用失败3. 处理速度慢4. 配置文件不生效六、生产环境部署建议macOS/Linux:官方提供稳定支持,推荐使用原生环境Windows:官方标注为实验性支持

以实战经验介绍行业知识 2883

ABAP 里解构引用操作符 ->* 的使用方法详解

解除引用操作符->*可用于将“类型为REF TO …的引用变量”的值(即该引用所指向内存)取出,从而访问其实际值或内部组件。具体地,若dref是一个“引用变量”,则表达式dref->*代表对该引用进行“解除引用”,使得程序按静态类型将其视为实际类型的值对象。例如,若lr类型声明为,则lr->*表示“将 lr 引用的INT4对象看作INT4类型并访问其值”。注:若 “数据引用变量” 的静态类型是通用类型DATA,则只能在这种上下文中使用->*。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 479

GCJ2019 Qualification Round abc题解

A.Foregone Solution 因为肯定有4,只要把4那位减1出来就行了。。。抱歉我是个傻子,退役太久,智商为负,写了个又麻烦又低效的东西,不想改了贴在这里纪念下sb时刻 #include<bits/stdc++.h> #define mpi(i,j) make_pair(i,j) using namespace std; typedef pair<int,int>...

IDrandom的专栏 324

双重分组进位跳跃进位链

跳跃进位链

qq_62260432的博客 940

GCJ2019 Round1C 题解

A.Robot Programming Strategy 就是看一下能不能干掉所有人,建个字典树,树上搜一下,如果再某一层有三种不同的情况那这棵子树就无解 #include<bits/stdc++.h> using namespace std; int hsh[27]; char rehsh[3]; struct node{ int c[3]; int su; }tre...

IDrandom的专栏 395

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2014 GCJ Round 1A

目前只会做A 题目链接:

geek7的专栏 1071

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

gcj 2017 A

在这里记录下吧,反正这里已经成为我碎碎念的地方了。昨天gcj2017A轮开始。晚了点才进,三个题目都看了下,第一个我只能给出正常数数的方案,分类讨论,加起来这样= = 第二个模板匹配,一开始自己想了下逻辑,但是发现有不对的地方,觉得要用回溯吧;第三个Cube的我不知道用什么去比较他们的大小和给出策略,总不能真的建个坐标系求解吧(真的建的话,怎么求解来着?)

宁静,致远 3080

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Full Binary Tree(GCJ2014 round1A PB)

去年google code jam第一轮的B题,我没有想明白,也没有找到题解。没有办法,就去下载了大神的代码来看看。感觉差距好大,别人用十分钟不到就做出来了。题目的描述如下,我就不写翻译了,题意挺明了的。由于墙的原因,我还是把题目贴下面吧!题目内容 A tree is a connected graph with no cycles.A rooted tree is a tree in which

intheworld 969

2014 GCJ Round 1C

题目链接:GCJ|Round1C 在浦东图书馆做的比赛, zon

geek7的专栏 959

GCJ Round 1A 2008 Problem C. Numbers

题目:GCJ Round 1A 2008 Problem C. Numbers 思路:构造矩阵水题 #include #include #include #include #include #include #include #define eps (1e-10) using namespace std; #define mod 1000 struct Matrix {

shiyuan的专栏 1901

【codejam2019 Round1A】Golf Gophers 题解

题目大意   这是一道交互题。   现在有若干只地鼠,你只知道地鼠数量 ≤M\leq M≤M,你要把这个数量猜出来。   你有 18 个风扇。每天初始,你给每个风扇设定它的叶片数 bib_ibi​(2 到 18 之间,从 0 开始标号),然后都让 0 号叶片指向正下。接着,每只地鼠独立地、等概率地选择一个风扇,把它的叶片往前拨一位(即原来是 jjj 号叶片向下的现在变成 (j+1) mo...

Four's 521

GCJ Round 1A 2008 Problem A. Minimum Scalar Product

题目:GCJ Round 1A 2008 Problem A. Minimum Scalar Product 思路:贪心 #include #include #include #include #include #include #include #define eps (1e-10) using namespace std; vectorv1,v2; bool cmp(

shiyuan的专栏 1476

【贪心】GCJ 2012 round1A kingdom rush

GCJ = Google Code Jam,是一种形式比较特殊的比赛,可以下载到测试数据,然后参赛者只需要提交输出文件,至于结果是如何得出来的并不重要,所以理论上说用肉眼去看亲自动笔算也是可以的。。。。 第一次接触,就看了一下往年的题目,round 1的前两题基本上可以招架住,第三题就超出能力所及了。。。。 kingdom rush也蛮简单的,用贪心法就好了,注意rating 2不合适时要选择

BananaTree 1147

GCJ Round 1A 2017 题解

A Alphabet Cake给一个R*C矩阵,里面有大写字母和?(大写字母每个最多出现一次),用矩阵中出现的大写字母填满矩阵,要求每个字母出现的区域都恰为一子矩阵。 直接把每个字母向行延展,后向列延展。#include<bits/stdc++.h> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Fork(i

nike0good |Oier&ACMer | 熟能生巧 930

【GCJ2016】 round 1A

A:The Last Word题意是给一个字符串,依次取出一个字母,然后将这些字母组成新串,组合的规则,只能放在当前串的串首或者串尾。求字典序最大的新串。 好简单,直接每次判断新取出的字母与当前组成的串的首字母比,比首字母大加到首部,否则加到尾部。#include <iostream> #include <cstring> #include <cmath> #include <algorithm>

小do在努力 747

GCJ 2008 Round 1A Minimum Scalar Product

GCJ(google code jam)上的水题。下周二有比赛,来熟悉熟悉。 有两个向量V1=(x1,x2……xn)和v2=(y1,y2……yn),允许任意交换v1和v2各自的分量顺序,请计算v1和v2的内积x1y1+……xnyn的最小值

细语呢喃 1258

GCJ 2008 Round 1A A 排序贪心

题意:给你两个维数相同的向量,它们之中的元素可以任意交换位置,求它们内积的最大值。思路:乍一看此题摸不着什么头脑,只是凭借直觉感觉一个升序一个降序求内积即可。这样的感觉有时是对的,有时是错的,如果实现复杂的话比赛中就不该冒这个险。最好简单的证明一下。 证明:先讨论二维向量的情况对于按升序排列的(x1,x2)(x1, x2)按升序排列的(y1,y2)(y1, y2),显然恰与思路想法相反,其内积减去

JIBANCANYANG 807
上一篇: GCJ2019 Qualification Round abc题解
下一篇: HDU3001Travelling(状压dp)
IDrandom
博客等级 码龄12年 31粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值