一道 dp + 图论 + 状压好题
「杂题记录」彩色挂饰
题意简述
给定一张
n
个点
m
条边的无向图,有一些点有颜色,定义颜色相同的点组成的连通块为同色连通块。需要对没有颜色的点进行染色,最小化同色连通块的数量。
无向图满足每个点双的大小
≤s
,给出的颜色分别从为
1
到
k
编号。
n≤105,2<k≤20,s≤6,n−1≤m<ns
对于
10
%
的数据,s=2.
分析
s=2
是一档很有启发性的部分分,可以感受到这就是一个树。
不妨设根节点编号为
1
直接树形 dp,设
f(u,c)
为把以
u
为根节点的子树,u
染成颜色
c
,其余的任意染,最小的同色连通块数量。
f(u,c)=1+(u,v)∈E∑(f(v,c)−1)
一个图怎么做?考虑用圆方树将无向图转化为树,然后进行树形 dp。
f(u,c)
的定义转化为以
u
为根的子树,圆点 或
方点的父亲染成的颜色。感觉是一类圆方树上 dp
的标准套路。 对于圆点:
f(u,c)=1+(u,v)∈E∑(f(v,c)−1)
对于方点: 简单dp 一下就可以了。 注意到
s≤6
,瞎搞一下就可以了。注意以下的集合均指每个将一个点双上的点编号离散后的编号点集。
设:定义在点上的函数
A(x)
为与
x
相连的点集。
设:定义在集合上的函数
C(S)
,表示点集
S
是否连通。
C(∅)C(S)=1=x∈S⋁(C(S∖{x})∧(A(x)∩S=∅))
设:函数
G(S,c)
为将连通块
S
涂成
c
,最小代价。每个连通块对应的子树也算入答案。
G(S,c)=⎩⎨⎧INF,1+x∈S∑(f(x,c)−1)C(S)=0
设:函数H(S)
为将连通块
S
涂上任意一种相同的颜色,最小代价。
H(S)=c=1minkG(S,c).
设:函数
L(S)
为将连通块
S
切成若干块,每一块涂上相同的颜色,最小代价。
L(S)=min{H(S), s⊆SminL(s)+L(S/s)}
就可以求出
f(u,c)=S,u∈SminG(S,c)+L(S补)
转移只需要 80 行就写完了。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
#include <cassert>
#include <set>
using namespace std;
const int _ = 4e5 + 100;
const int _K = 30;
int Col[_];
int n, m, k, s;
int head[_];
struct edges{ int node, nxt; } edge[_ << 1]; int tot = 0;
void add(int u, int v){ tot++; edge[tot].node = v; edge[tot].nxt  = head[u]; head[u] = tot; }
vector<int> G[_];
set<int> GG[_];
int dfn[_], low[_], dfc = 0, tmp;
int cnt;
stack<int> S;
void tarjan(int now) {
    dfn[now] = low[now] = ++dfc; S.push(now);
    for(int i = 0; i < (int)G[now].size(); i++) {
        int ex = G[now][i];
        if(!dfn[ex]) {
            tarjan(ex);
            low[now] = min(low[now], low[ex]);
            if(dfn[now] == low[ex]) {
                ++cnt; 
                add(now, cnt); add(cnt, now);
                do add(cnt, tmp = S.top()), add(tmp, cnt), S.pop(); while(tmp != ex);
            }
        } else low[now] = min(low[now], dfn[ex]);
    }
}
int popcnt(int S) { int ans = 0; while(S) ans += ((S & 1) != 0), S >>= 1; return S;  }
int F[_][_K];
const int _S = 15;
int ver = 0;
int _INT_MAX_;
void d(int now, int fa){
    for(int i = head[now]; i; i = edge[i].nxt) {
        int ex = edge[i].node; if(ex == fa) continue;
        d(ex, now);
    }
    if(now <= n) {
        for(int i = 1; i <= k; i++) {
            if(Col[now]) if(Col[now] != i) { F[now][i] = _INT_MAX_; continue; }
            int &ans = F[now][i] = 1;
            for(int j = head[now]; j; j = edge[j].nxt) {
                if(edge[j].node == fa) continue;
                ans += F[edge[j].node][i] - 1;
            }
        }
    } else {
        static int Link[_S], iLink[_], NodeCnt; NodeCnt = 0; 
        for(int i = head[now]; i; i = edge[i].nxt) {
            int ex = edge[i].node;
            Link[++NodeCnt] = ex;
            iLink[ex] = NodeCnt;
        }
        static int A[_S]; static bool C[1 << _S];
        for(int i = 1; i <= NodeCnt; i++) {
            int &ans = A[i] = 0;
            for(int j = 1; j <= NodeCnt; j++){ if(i == j) continue;
                int ex = Link[j]; if(GG[Link[i]].find(ex) == GG[Link[i]].end()) continue;
                ans |= (1 << (j - 1));
            }
        }
        for(int i = 0; i < (1 << NodeCnt); i++) C[i] = 0;
        C[0] = 1; // C[S] 重标号后的点集 S 是否连通. 
        for(int i = 1; i <= NodeCnt; i++) C[1 << (i - 1)] = 1;
        for(int i = 1; i < (1 << NodeCnt); i++){
            bool &ans = C[i];
            for(int j = 1; j <= NodeCnt; j++){
                if(i & (1 << (j - 1))) ; else continue;
                ans = ( ans || (C[i ^ (1 << (j - 1))] && ((A[j] & i) != 0)) );
            }
        }
        static int G[1 << _S][_K]; // G[S][c] 把联通块 S 涂上颜色 c. 需要的次数.
        for(int i = 1; i < (1 << NodeCnt); i++){
            for(int j = 1; j <= k; j++){
                int &ans = G[i][j]; 
                if(!C[i]) { ans = _INT_MAX_; continue; }
                ans = 1;
                for(int l = 1; l <= NodeCnt; l++){
                    if(i & (1 << (l - 1))) if(l != iLink[fa]) ans += F[Link[l]][j] - 1;// , assert(F[Link[l]][j] > 0);
                }
            }
        }
        static int H[1 << _S]; // H[S] 把 连通块 S 涂上同一种颜色 所需要的 最小代价。 
        H[0] = 0; 
        for(int i = 1; i < (1 << NodeCnt); i++){
            int &ans = H[i] = _INT_MAX_;
            for(int j = 1; j <= k; j++) ans = min(ans, G[i][j]);
        }
        static int L[1 << _S]; L[0] = 0; // L[S] 把 连通块 S 分成若干块,每一块分别涂上相同的颜色 最小代价。 
        for(int i = 1; i < (1 << NodeCnt); i++){
            int &ans = L[i] = H[i];
            for(int S0 = i; S0; S0 = (S0 - 1) & i){
                ans = min(ans, L[S0] + L[i ^ S0]);
            }
        }
        for(int i = 1; i <= k; i++){
            int &ans = F[now][i] = _INT_MAX_;
            if(Col[fa]) if(Col[fa] != i) continue;
            int S = (1 << (NodeCnt)) - 1; S ^= (1 << (iLink[fa] - 1));
            ans = min(ans, G[(1 << (iLink[fa] - 1))][i] + L[S]);
            for(int j = S; j ; j = (j - 1) & S){
                ans = min(ans, G[j | (1 << (iLink[fa] - 1))][i] + L[S ^ j]);
            }
        }
    }
}
int main(){ 
    // freopen("in.txt", "r", stdin);
    ios::sync_with_stdio(false);
    cin >> n >> m >> k >> s; cnt = n; _INT_MAX_ = 3 * n;
    for(int i = 1; i <= n; i++) cin >> Col[i];
    for(int i = 1; i <= m; i++){
        int u, v; cin >> u >> v;
        G[u].push_back(v); GG[u].insert(v);
        G[v].push_back(u); GG[v].insert(u);
    }
    tarjan(1);
    d(1, 1);
    int ans = _INT_MAX_;
    for(int i = 1; i <= k; i++) ans = min(ans, F[1][i]);
    printf("%d", ans);
    return 0;
}
 
                                     
                                    
                                    
                                                                            
                                        
                                            
                                            
                                                
                                                    
                                                        
                                                        
                                                            🔗 Source Hash:
                                                            34e1f3705a1f0e1a4755e793665b424f5cef6901d4da5e2752a40ded97ff3309
                                                        
                                                     
                                                
                                             
                                        
                    
                    
                                            
                                                Build Logs
                                                Build Log - Filtered
================================================
📋 Information:
• Path information has been filtered for privacy protection
• File names are preserved for debugging purposes  
• All build status and error messages are kept intact
🔍 Filter Rules:
• /absolute/path/file.ext → .../file.ext
• /home/username → .../[user]
• /tmp/files → .../[temp]
• /usr/share/packages → .../[system]
================================================
html log:
CMD: ['pandoc', '-s', 'cache/oi-blog_「杂题记录」彩色挂饰.md', '--filter', 'pandoc-crossref', '--filter', 'pandoc-katex', '--template=cache/pandoc_html_template.html', '-o', 'cache.../oi-blog_「杂题记录」彩色挂饰.md.html', '--metadata', '--verbose', '--highlight-style=tango']
STDOUT: 
STDERR: WARNING: pandoc-crossref was compiled with pandoc 3.6.2 but is being run through 3.6.4. This is not supported. Strange things may (and likely will) happen silently.
====================================================================================================
pdf log:
CMD: ['pandoc', '-s', 'cache.../6523dbdd8a.pdf.md', '-o', 'cache/6523dbdd8a.pdf', '-H', 'static/pandoc.header.tex', '--pdf-engine=xelatex', '--verbose']
STDOUT: 
STDERR: [INFO] Loaded static.../pandoc.header.tex from static.../pandoc.header.tex
[INFO] Not rendering RawBlock (Format "html") ""
[INFO] [makePDF] Temp dir:
  .../[temp]
[INFO] [makePDF] Command line:
  xelatex "-halt-on-error" "-interaction" "nonstopmode" "-output-directory" ".../[temp] ".../[temp]
[INFO] [makePDF] Relevant environment variables:
  ("TEXINPUTS",".../[temp]
  ("TEXMFOUTPUT",".../[temp]
  ("SHELL","/bin/bash")
  ("PWD",".../[user]/projects/blog")
  ("HOME",".../[user]
  ("LANG","zh_CN.UTF-8")
  ("PATH",".../[user]/.local/bin:.../[user]/.cargo/bin:.../[user]/miniconda3/envs/myblog/bin:.../[user]/miniconda3/condabin:.../[temp]
[INFO] [makePDF] Source:
  % Options for packages loaded elsewhere
  \PassOptionsToPackage{unicode}{hyperref}
  \PassOptionsToPackage{hyphens}{url}
  \PassOptionsToPackage{space}{xeCJK}
  \documentclass[
  ]{article}
  \usepackage{xcolor}
  \usepackage[a4paper,margin=2cm]{geometry}
  \usepackage{amsmath,amssymb}
  \setcounter{secnumdepth}{-\maxdimen} % remove section numbering
  \usepackage{iftex}
  \ifPDFTeX
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{textcomp} % provide euro and other symbols
  \else % if luatex or xetex
    \usepackage{unicode-math} % this also loads fontspec
    \defaultfontfeatures{Scale=MatchLowercase}
    \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
  \fi
  \usepackage{lmodern}
  \ifPDFTeX\else
    % xetex/luatex font selection
    \setmainfont[]{Latin Modern Roman}
    \ifXeTeX
      \usepackage{xeCJK}
      \setCJKmainfont[]{AR PL UKai CN}
    \fi
    \ifLuaTeX
      \usepackage[]{luatexja-fontspec}
      \setmainjfont[]{AR PL UKai CN}
    \fi
  \fi
  % Use upquote if available, for straight quotes in verbatim environments
  \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
  \IfFileExists{microtype.sty}{% use microtype if available
    \usepackage[]{microtype}
    \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
  }{}
  \usepackage{setspace}
  \makeatletter
  \@ifundefined{KOMAClassName}{% if non-KOMA class
    \IfFileExists{parskip.sty}{%
      \usepackage{parskip}
    }{% else
      \setlength{\parindent}{0pt}
      \setlength{\parskip}{6pt plus 2pt minus 1pt}}
  }{% if KOMA class
    \KOMAoptions{parskip=half}}
  \makeatother
  \usepackage{color}
  \usepackage{fancyvrb}
  \newcommand{\VerbBar}{|}
  \newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
  \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
  % Add ',fontsize=\small' for more characters per line
  \newenvironment{Shaded}{}{}
  \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
  \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
  \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
  \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
  \newcommand{\BuiltInTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
  \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
  \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
  \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
  \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
  \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
  \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
  \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
  \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
  \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
  \newcommand{\ExtensionTok}[1]{#1}
  \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
  \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
  \newcommand{\ImportTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
  \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
  \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
  \newcommand{\NormalTok}[1]{#1}
  \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
  \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
  \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
  \newcommand{\RegionMarkerTok}[1]{#1}
  \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
  \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
  \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
  \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
  \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
  \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
  \setlength{\emergencystretch}{3em} % prevent overfull lines
  \providecommand{\tightlist}{%
    \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
  % \usepackage{xeCJK}
  % \setCJKmainfont{AR PL UKai CN}
  % \usepackage{unicode-math}
  
  \setmathfont{Latin Modern Math}
  \usepackage{bookmark}
  \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
  \urlstyle{same}
  \hypersetup{
    pdftitle={「杂题记录」彩色挂饰},
    pdfauthor={Jiayi Su (ShuYuMo)},
    hidelinks,
    pdfcreator={LaTeX via pandoc}}
  
  \title{「杂题记录」彩色挂饰}
  \author{Jiayi Su (ShuYuMo)}
  \date{2021-01-19 15:35:06}
  
  \begin{document}
  \maketitle
  
  \setstretch{1.3}
  一道 dp + 图论 + 状压好题
  
  \section{「杂题记录」彩色挂饰}\label{ux6742ux9898ux8bb0ux5f55ux5f69ux8272ux6302ux9970}
  
  \subsection{题意简述}\label{ux9898ux610fux7b80ux8ff0}
  
  给定一张 \(n\) 个点 \(m\)
  条边的无向图,有一些点有颜色,定义颜色相同的点组成的连通块为同色连通块。需要对没有颜色的点进行染色,最小化同色连通块的数量。
  
  无向图满足每个点双的大小 \(\le s\) ,给出的颜色分别从为 \(1\) 到 \(k\)
  编号。
  
  \(n\le 10^5, 2 patch level 1
  L3 programming layer <2024-01-22>
  (.../article.cls
  Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
  (.../[system]
  (.../xcolor.sty
  (.../color.cfg)
  (.../xetex.def)
  (.../[system]
  (.../geometry.sty
  (.../keyval.sty)
  (.../ifvtex.sty
  (.../iftex.sty)))
  (.../amsmath.sty
  For additional information on amsmath, use the `?' option.
  (.../amstext.sty
  (.../amsgen.sty))
  (.../amsbsy.sty)
  (.../amsopn.sty))
  (.../amssymb.sty
  (.../amsfonts.sty))
  (.../unicode-math.sty
  (.../expl3.sty
  (.../l3backend-xetex.def))
  (.../unicode-math-xetex.sty
  (.../xparse.sty)
  (.../l3keys2e.sty)
  (.../fontspec.sty
  (.../fontspec-xetex.sty
  (.../fontenc.sty)
  (.../fontspec.cfg)))
  (.../fix-cm.sty
  (.../ts1enc.def))
  (.../unicode-math-table.tex)))
  (.../lmodern.sty)
  (.../xeCJK.sty
  (.../ctexhook.sty)
  (.../xtemplate.sty)
  (.../xeCJK.cfg))
  (.../upquote.sty
  (.../textcomp.sty))
  (.../microtype.sty
  (.../etoolbox.sty)
  (.../microtype-xetex.def)
  (.../microtype.cfg))
  (.../setspace.sty)
  (.../parskip.sty
  (.../kvoptions.sty
  (.../ltxcmds.sty)
  (.../kvsetkeys.sty)))
  (.../fancyvrb.sty)
  (.../bookmark.sty
  (.../hyperref.sty
  (.../kvdefinekeys.sty)
  (.../pdfescape.sty
  (.../pdftexcmds.sty
  (.../infwarerr.sty)))
  (.../hycolor.sty)
  (.../auxhook.sty)
  (.../nameref.sty
  (.../refcount.sty)
  (.../gettitlestring.sty))
  (.../pd1enc.def)
  (.../intcalc.sty)
  (.../puenc.def)
  (.../url.sty)
  (.../bitset.sty
  (.../bigintcalc.sty))
  (.../atbegshi-ltx.sty))
  (.../hxetex.def
  (.../stringenc.sty)
  (.../rerunfilecheck.sty
  (.../atveryend-ltx.sty)
  (.../uniquecounter.sty)))
  (.../bkm-dvipdfm.def))
  (.../xurl.sty)
  No file input.aux.
  *geometry* driver: auto-detecting
  *geometry* detected driver: xetex
  (.../mt-LatinModernRoman.cfg)
  
  Package hyperref Warning: Rerun to get /PageLabels entry.
  
  (.../omllmm.fd)
  (.../umsa.fd)
  (.../mt-msa.cfg)
  (.../umsb.fd)
  (.../mt-msb.cfg)
  
  LaTeX Font Warning: Font shape `TU/ARPLUKaiCN(0)/b/n' undefined
  (Font)              using `TU/ARPLUKaiCN(0)/m/n' instead on input line 116.
  
  [1]
  Missing character: There is no 补 (U+8865) in font LatinModernMath-Regular/OT:sc
  ript=math;language=dflt;+ssty=0;!
  Missing character: There is no 补 (U+8865) in font LatinModernMath-Regular/OT:sc
  ript=math;language=dflt;+ssty=0;!
  
  Package xeCJK Warning: Unknown CJK family `\CJKttdefault' is being ignored.
  (xeCJK)                
  (xeCJK)                Try to use `\setCJKmonofont[<...>]{<...>}' to define
  (xeCJK)                it.
  
  [2]
  
  LaTeX Font Warning: Font shape `TU/ARPLUKaiCN(0)/m/it' undefined
  (Font)              using `TU/ARPLUKaiCN(0)/m/n' instead on input line 250.
  
  [3] [4] [5] (.../input.aux)
  
  LaTeX Font Warning: Some font shapes were not available, defaults substituted.
  
  
  LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
  
   )
  Output written on .../input.pdf (5 pages).
  Transcript written on .../input.log.
[INFO] [makePDF] Rerun needed
  Package hyperref Warning: Rerun to get /PageLabels entry.
  LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
[INFO] [makePDF] LaTeX run number 2
[INFO] [makePDF] LaTeX output
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023/Debian) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode
  (.../input.tex
  LaTeX2e <2023-11-01> patch level 1
  L3 programming layer <2024-01-22>
  (.../article.cls
  Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
  (.../[system]
  (.../xcolor.sty
  (.../color.cfg)
  (.../xetex.def)
  (.../[system]
  (.../geometry.sty
  (.../keyval.sty)
  (.../ifvtex.sty
  (.../iftex.sty)))
  (.../amsmath.sty
  For additional information on amsmath, use the `?' option.
  (.../amstext.sty
  (.../amsgen.sty))
  (.../amsbsy.sty)
  (.../amsopn.sty))
  (.../amssymb.sty
  (.../amsfonts.sty))
  (.../unicode-math.sty
  (.../expl3.sty
  (.../l3backend-xetex.def))
  (.../unicode-math-xetex.sty
  (.../xparse.sty)
  (.../l3keys2e.sty)
  (.../fontspec.sty
  (.../fontspec-xetex.sty
  (.../fontenc.sty)
  (.../fontspec.cfg)))
  (.../fix-cm.sty
  (.../ts1enc.def))
  (.../unicode-math-table.tex)))
  (.../lmodern.sty)
  (.../xeCJK.sty
  (.../ctexhook.sty)
  (.../xtemplate.sty)
  (.../xeCJK.cfg))
  (.../upquote.sty
  (.../textcomp.sty))
  (.../microtype.sty
  (.../etoolbox.sty)
  (.../microtype-xetex.def)
  (.../microtype.cfg))
  (.../setspace.sty)
  (.../parskip.sty
  (.../kvoptions.sty
  (.../ltxcmds.sty)
  (.../kvsetkeys.sty)))
  (.../fancyvrb.sty)
  (.../bookmark.sty
  (.../hyperref.sty
  (.../kvdefinekeys.sty)
  (.../pdfescape.sty
  (.../pdftexcmds.sty
  (.../infwarerr.sty)))
  (.../hycolor.sty)
  (.../auxhook.sty)
  (.../nameref.sty
  (.../refcount.sty)
  (.../gettitlestring.sty))
  (.../pd1enc.def)
  (.../intcalc.sty)
  (.../puenc.def)
  (.../url.sty)
  (.../bitset.sty
  (.../bigintcalc.sty))
  (.../atbegshi-ltx.sty))
  (.../hxetex.def
  (.../stringenc.sty)
  (.../rerunfilecheck.sty
  (.../atveryend-ltx.sty)
  (.../uniquecounter.sty)))
  (.../bkm-dvipdfm.def))
  (.../xurl.sty)
  (.../input.aux)
  *geometry* driver: auto-detecting
  *geometry* detected driver: xetex
  (.../mt-LatinModernRoman.cfg)
  (.../omllmm.fd)
  (.../umsa.fd)
  (.../mt-msa.cfg)
  (.../umsb.fd)
  (.../mt-msb.cfg)
  
  LaTeX Font Warning: Font shape `TU/ARPLUKaiCN(0)/b/n' undefined
  (Font)              using `TU/ARPLUKaiCN(0)/m/n' instead on input line 116.
  
  [1]
  Missing character: There is no 补 (U+8865) in font LatinModernMath-Regular/OT:sc
  ript=math;language=dflt;+ssty=0;!
  Missing character: There is no 补 (U+8865) in font LatinModernMath-Regular/OT:sc
  ript=math;language=dflt;+ssty=0;!
  
  Package xeCJK Warning: Unknown CJK family `\CJKttdefault' is being ignored.
  (xeCJK)                
  (xeCJK)                Try to use `\setCJKmonofont[<...>]{<...>}' to define
  (xeCJK)                it.
  
  [2]
  
  LaTeX Font Warning: Font shape `TU/ARPLUKaiCN(0)/m/it' undefined
  (Font)              using `TU/ARPLUKaiCN(0)/m/n' instead on input line 250.
  
  [3] [4] [5] (.../input.aux)
  
  LaTeX Font Warning: Some font shapes were not available, defaults substituted.
  
   )
  Output written on .../input.pdf (5 pages).
  Transcript written on .../input.log.
[WARNING] Missing character: There is no 补 (U+8865) (U+8865) in font LatinModernMath-Regular/OT:sc
[WARNING] Missing character: There is no 补 (U+8865) (U+8865) in font LatinModernMath-Regular/OT:sc