1. 前言

本人第一次把 Div2. D 切了,开心。

C 不会,寄。 后来在场外想到一种奇怪做法 AC 了。

2. 正文(A-D)

CF 比赛链接

A. Three Doors

签到题。循环查找手中的钥匙能打开哪扇门然后更新手上钥匙,如果扫完一遍后发现还有门没打开,输出 \(\texttt{NO}\),否则输出 \(\texttt{YES}\)。

时间复杂度:\(\mathcal O(3)\)。

期望得分:\(100\)。

Code

点击查看代码
/*
Author: TheSky233
Windows 11 Creation. All rights reserved.
*/
#include <bits/stdc++.h>
using namespace std; #define Multicase() for(int T = read() ; T ; T--)
#define lowbit(x) (x & (-x))
#define ls(p) (p<<1)
#define rs(p) (p<<1|1)
#define l(p) tree[p].l
#define r(p) tree[p].r
#define sum(p) tree[p].sum
#define tag(p) tree[p].tag
#define F(i,a,b) for(int i=(a) ;i<=(b);++i)
#define F2(i,a,b) for(int i=(a);i< (b);++i)
#define dF(i,a,b) for(int i=(a);i>=(b);--i)
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug debug("Passing [%s] in LINE %d\n",__FUNCTION__,__LINE__)
#define clr(a,x) memset(a,x,sizeof(a))
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
#define endl '\n'
#define ENDL putchar('\n')
#define forGraph(u) for(int i=head[u];i;i=G[i].next)
#define _file(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); const int N=5e5+5;
const int M=1e6+5;
const int MN=1e3+5;
const int iinf=INT_MAX;
const double eps=1e-9;
const double pi=acos(-1);
const long long linf=LLONG_MAX;
const long long mod=1000000007,mod2=998244353; typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef map<int,int> mii;
typedef map<ll,ll> mll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef map<string,int> msi; inline int read(){int x(0), f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} return f?-x:x;}
template <typename T> void read(T &x){x=0; T f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} x=f?-x:x;}
template <typename T,typename ...Arg>void read(T& x,Arg& ...arg){read(x);read(arg...);}
template <typename T> inline void write(T x){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot);}
template <typename T> void write(T x,char c){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot); putchar(c);}
void judge(bool x){printf(x?"YES\n":"NO\n");} void Solve(); struct Graph{
int to,w,next;
}G[M<<1];
int head[N],_cnt;
void addEdge(int u,int v,int w){G[++_cnt]=(Graph){v,w,head[u]}; head[u]=_cnt;} int n,m,q,k,p;
int a[5];
bool vis[10];
vector<int> v; int main(){
Multicase()
Solve();
} void Solve(){
memset(vis,0,sizeof(vis));
read(q);
F(i,1,3) read(a[i]);
vis[q]=1;
while(a[q]) vis[a[q]]=1,q=a[q];
F(i,1,3) if(vis[i]==0) return judge(0),void();
judge(1);
}

B. Also Try Minecraft

首先,作为一个 MC 玩家和 Terraria 玩家,看到题面还小激动了一会。

进入正题。我们发现如果 \(a_i > a_{i\pm1}\),那么就会收到 \(a_i - a_{i \pm 1}\) 的伤害,否则无伤。

我们可以 \(\mathcal O(n)\) 预处理出 \(a_{i-1}\) 前往 \(a_{i}\) 时收到的伤害和 \(a_{i+1}\) 前往 \(a_i\) 的伤害,随后将这两个数组分别做前缀和和后缀和,查询时如果 \(l \le r\) ,输出前缀和,否则输出后缀和。

时间复杂度:预处理 \(\mathcal O(n)\),单次查询 \(\mathcal O(1)\),总时间复杂度:\(\mathcal O(n+q)\)。

Code

点击查看代码
/*
Author: TheSky233
Windows 11 Creation. All rights reserved.
*/
#include <bits/stdc++.h>
using namespace std; #define Multicase() for(int T = read() ; T ; T--)
#define lowbit(x) (x & (-x))
#define ls(p) (p<<1)
#define rs(p) (p<<1|1)
#define l(p) tree[p].l
#define r(p) tree[p].r
#define sum(p) tree[p].sum
#define tag(p) tree[p].tag
#define F(i,a,b) for(int i=(a) ;i<=(b);++i)
#define F2(i,a,b) for(int i=(a);i< (b);++i)
#define dF(i,a,b) for(int i=(a);i>=(b);--i)
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug debug("Passing [%s] in LINE %d\n",__FUNCTION__,__LINE__)
#define clr(a,x) memset(a,x,sizeof(a))
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
#define endl '\n'
#define ENDL putchar('\n')
#define forGraph(u) for(int i=head[u];i;i=G[i].next)
#define _file(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); const int N=5e5+5;
const int M=1e6+5;
const int MN=1e3+5;
const int iinf=INT_MAX;
const double eps=1e-9;
const double pi=acos(-1);
const long long linf=LLONG_MAX;
const long long mod=1000000007,mod2=998244353; typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef map<int,int> mii;
typedef map<ll,ll> mll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef map<string,int> msi; inline int read(){int x(0), f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} return f?-x:x;}
template <typename T> void read(T &x){x=0; T f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} x=f?-x:x;}
template <typename T,typename ...Arg>void read(T& x,Arg& ...arg){read(x);read(arg...);}
template <typename T> inline void write(T x){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot);}
template <typename T> void write(T x,char c){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot); putchar(c);}
void judge(bool x){printf(x?"YES\n":"NO\n");} void Solve(); struct Graph{
int to,w,next;
}G[M<<1];
int head[N],_cnt;
void addEdge(int u,int v,int w){G[++_cnt]=(Graph){v,w,head[u]}; head[u]=_cnt;} int n,m,q,k,p;
ll a[N],b[N],f[N];
ll pre[N],suf[N];
vector<int> v; int main(){
// Multicase()
Solve();
} void Solve(){
read(n,q);
F(i,1,n) read(a[i]);
F(i,2,n) if(a[i-1]>a[i]) pre[i]=a[i-1]-a[i];
dF(i,n-1,1) if(a[i+1]>a[i]) suf[i]=a[i+1]-a[i];
F(i,1,n) pre[i]+=pre[i-1];
dF(i,n,1) suf[i]+=suf[i+1];
while(q--){
int x,y;
read(x,y);
if(x<=y) write(pre[y]-pre[x],'\n');
else write(suf[y]-suf[x],'\n');
}
}

C. Cover an RBS

A-D 中最难题。

首先,我们先预处理出字符串中 \(\texttt{( ) ?}\) 的个数,记为 \(l,r,q\),如果 \(|l-r|=q\),说明所有的问号都得填上某种括号,唯一,输出 \(\texttt{YES}\)。

然后,因为题面保证了是一个 RBS 填上若干个问号,所以必定有一种合法的解。我们贪心:如果当前左括号数量不足字符串长度的一半,就填左括号,否则全填右括号。在填的同时维护一下 最后一个左括号第一个右括号 出现的位置。

然后我们就能得到类似这样一个字符串

\(\texttt{(} \color{red}{\texttt{)}} \texttt{(())} \color{red}{\texttt{(}} \texttt{)}\)。

我们可以发现,交换两个标红的括号,还能保持一个合法括号序列的基本要求(对于 \(\forall 1\ge i \le len\),有前缀和 \(l_i \geq r_i\)),同时,因为我们保存的是最边界的左右括号,也能保证对其它的影响最少。

如果 \(\operatorname{swap}(s_{lastL},s_{firstR})\) 后,还是一个合法的序列,说明不唯一,输出 \(\texttt{NO}\),否则输出 \(\texttt{YES}\)。(感性理解)

时间复杂度:\(\mathcal O(n)\)

期望得分:\(100\)

Code

点击查看代码
/*
Author: TheSky233
Windows 11 Creation. All rights reserved.
*/
#include <bits/stdc++.h>
using namespace std; #define Multicase() for(int T = read() ; T ; T--)
#define lowbit(x) (x & (-x))
#define ls(p) (p<<1)
#define rs(p) (p<<1|1)
#define l(p) tree[p].l
#define r(p) tree[p].r
#define sum(p) tree[p].sum
#define tag(p) tree[p].tag
#define F(i,a,b) for(int i=(a) ;i<=(b);++i)
#define F2(i,a,b) for(int i=(a);i< (b);++i)
#define dF(i,a,b) for(int i=(a);i>=(b);--i)
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug debug("Passing [%s] in LINE %d\n",__FUNCTION__,__LINE__)
#define clr(a,x) memset(a,x,sizeof(a))
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
#define endl '\n'
#define ENDL putchar('\n')
#define forGraph(u) for(int i=head[u];i;i=G[i].next)
#define _file(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); const int N=5e5+5;
const int M=1e6+5;
const int MN=1e3+5;
const int iinf=INT_MAX;
const double eps=1e-9;
const double pi=acos(-1);
const long long linf=LLONG_MAX;
const long long mod=1000000007,mod2=998244353; typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef map<int,int> mii;
typedef map<ll,ll> mll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef map<string,int> msi; inline int read(){int x(0), f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} return f?-x:x;}
template <typename T> void read(T &x){x=0; T f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} x=f?-x:x;}
template <typename T,typename ...Arg>void read(T& x,Arg& ...arg){read(x);read(arg...);}
template <typename T> inline void write(T x){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot);}
template <typename T> void write(T x,char c){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot); putchar(c);}
void judge(bool x){printf(x?"YES\n":"NO\n");} void Solve(); struct Graph{
int to,w,next;
}G[M<<1];
int head[N],_cnt;
void addEdge(int u,int v,int w){G[++_cnt]=(Graph){v,w,head[u]}; head[u]=_cnt;} int n,m,k,p;
int a[N],b[N],f[N];
vector<int> v; int main(){
Multicase()
Solve();
} string s; void Solve(){
int l=0,r=0,q=0;
cin>>s;
int len=s.length();
F2(i,0,len){
if(s[i]=='(') l++;
else if(s[i]==')') r++;
else q++;
}
if(q==abs(l-r)) return judge(1),void();
int tot=len/2;
int lastL=0,firstR=iinf;
F2(i,0,len){
if(s[i]=='?'){
if(l<tot){
l++;
s[i]='(';
lastL=i;
}
else{
r++;
s[i]=')';
firstR=min(firstR,i);
}
}
}
swap(s[lastL],s[firstR]);
int cnt=0;
F2(i,0,len){
if(s[i]=='(') cnt++;
else cnt--;
if(cnt<0) return judge(1),void();
}
judge(0);
}

D. Rorororobot

萌萌题。使用 ST-Table 维护区间 \([l,r]\) 中墙的最大高度,显然,如果 \([x_1,x_2]\) 中有墙的高度为 \(n\),那么无解。

否则,判断他们是否都能走到最高的墙的上面以及 \(|x_1-x_2| \bmod{k}\) 和 \(|y_1-y_2| \bmod{k}\) 是否都为 \(0\),如果是,输出 \(\texttt{YES}\),否则 \(\texttt{NO}\)。

时间复杂度:ST 表预处理 \(\mathcal O(m \log m)\),单次查询 \(\mathcal O(1)\),总复杂度 \(\mathcal O(n+q)\)。

期望得分:\(100\)。

Code

点击查看代码
/*
Author: TheSky233
Windows 11 Creation. All rights reserved.
*/
#include <bits/stdc++.h>
#define int long long
using namespace std; #define Multicase() for(int T = read() ; T ; T--)
#define lowbit(x) (x & (-x))
#define ls(p) (p<<1)
#define rs(p) (p<<1|1)
#define l(p) tree[p].l
#define r(p) tree[p].r
#define sum(p) tree[p].sum
#define tag(p) tree[p].tag
#define F(i,a,b) for(int i=(a) ;i<=(b);++i)
#define F2(i,a,b) for(int i=(a);i< (b);++i)
#define dF(i,a,b) for(int i=(a);i>=(b);--i)
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug debug("Passing [%s] in LINE %d\n",__FUNCTION__,__LINE__)
#define clr(a,x) memset(a,x,sizeof(a))
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
#define endl '\n'
#define ENDL putchar('\n')
#define forGraph(u) for(int i=head[u];i;i=G[i].next)
#define _file(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); const int N=5e5+5;
const int M=1e6+5;
const int MN=1e3+5;
const int iinf=INT_MAX;
const double eps=1e-9;
const double pi=acos(-1);
const long long linf=LLONG_MAX;
const long long mod=1000000007,mod2=998244353; typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef map<int,int> mii;
typedef map<ll,ll> mll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef map<string,int> msi; inline int read(){int x(0), f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} return f?-x:x;}
template <typename T> void read(T &x){x=0; T f(0); char ch=getchar(); while(ch<'0'||ch>'9'){f|=ch=='-';ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48); ch=getchar();} x=f?-x:x;}
template <typename T,typename ...Arg>void read(T& x,Arg& ...arg){read(x);read(arg...);}
template <typename T> inline void write(T x){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot);}
template <typename T> void write(T x,char c){static char buf[64]; static int tot(0); if(x<0) putchar('-'),x=-x; do buf[++tot]=(x%10)+48,x/=10; while(x); do putchar(buf[tot--]); while(tot); putchar(c);}
void judge(bool x){printf(x?"YES\n":"NO\n");} void Solve(); struct Graph{
int to,w,next;
}G[M<<1];
int head[N],_cnt;
void addEdge(int u,int v,int w){G[++_cnt]=(Graph){v,w,head[u]}; head[u]=_cnt;} int n,m,q,k,p;
int a[N],b[N],f[N];
int ST[N][25];
vector<int> v; signed main(){
// Multicase()
Solve();
} int query(int l,int r){
int k=__lg(r-l+1);
return max(ST[l][k],ST[r-(1<<k)+1][k]);
} void Solve(){
read(n,m);
F(i,1,m) read(a[i]);
memset(ST,0,sizeof(ST));
for(int i=1;i<=m;i++) ST[i][0]=a[i];
for(int j=1;j<=21;j++){
for(int i=1;i+(1<<j)-1<=m;i++){
ST[i][j]=max(ST[i][j-1],ST[i+(1<<(j-1))][j-1]);
}
}
read(q);
while(q--){
int x,y,xx,yy,k;
read(y,x,yy,xx,k);
if(x>xx) swap(y,yy),swap(x,xx);
if(query(x,xx)==n){
judge(0);
continue;
}
if((xx-x)%k!=0 || (abs(yy-y))%k!=0){
judge(0);
continue;
}
int h=query(x,xx)+1;
int ly=n-y,lyy=n-yy;
int ty=ly/k,tyy=lyy/k;
if(y>=h && yy>=h) judge(1);
else if(y+ty*k>=h || yy+tyy*k>=h) judge(1);
else judge(0);
}
}
/*
0 0 0 0 0 0 0 1 0 0
0 0 0 1 0 0 0 1 1 0
1 0 0 1 0 0 0 1 1 0
1 0 0 1 0 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1
1 0 & 1 & 1 1 1 1 1
1 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 1 1
*/

【做题笔记】CF Edu Round 132的更多相关文章

  1. C语言程序设计做题笔记之C语言基础知识(下)

    C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...

  2. C语言程序设计做题笔记之C语言基础知识(上)

    C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...

  3. SDOI2017 R1做题笔记

    SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30

  4. SDOI2014 R1做题笔记

    SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(

  5. SDOI2016 R1做题笔记

    SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...

  6. LCT做题笔记

    最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...

  7. java做题笔记

    java做题笔记 1. 初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化: 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序 ...

  8. SAM 做题笔记(各种技巧,持续更新,SA)

    SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...

  9. PKUWC/SC 做题笔记

    去年不知道干了些啥,什么省选/营题都没做. 现在赶应该还来得及(?) 「PKUWC2018」Minimax Done 2019.12.04 9:38:55 线段树合并船新玩法??? \(O(n^2)\ ...

  10. POI做题笔记

    POI2011 Conspiracy (2-SAT) Description \(n\leq 5000\) Solution 发现可拆点然后使用2-SAT做,由于特殊的关系,可以证明每次只能交换两个集 ...

随机推荐

  1. 图解 Git 工作原理

    此页图解 git 中的最常用命令.如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 上面的四条命令在工作目录.暂存目录(也叫做索引)和仓库之间复制文件. git add fil ...

  2. 利用expect批量修改Linux服务器密码

    一个执着于技术的公众号 背景 修改Linux系统密码,执行passwd即可更改密码.可如果有成千上百台服务器呢,通过ssh的方式逐一进行修改,对我们来说,工作量是非常大,且效率非常低下.因此采用批量修 ...

  3. 微信小程序云开发如何实现微信支付,业务逻辑又怎样才算可靠

    今天打了几把永劫无间后,咱们来聊一聊用云开发来开发微信小程序时,如何实现微信支付,并且保证业务逻辑可靠. @ 目录 注册微信支付商户号 小程序关联商户号 业务逻辑 代码实现 注册微信支付商户号 点击& ...

  4. ELK 1.3之kibana

    1.安装kibana,直接压缩包安装就可以,kibana默认端口5601 2.配置kibana配置文件 [root@kibana config]# vim /opt/kibana/config/kib ...

  5. Linux下将一个文件压缩分包成多个小文件

    压缩分包 将文件test分包压缩成10M 的文件: tar czf - test | split -b 10m - test.tar.gz 解压 将第一步分拆的多个包解压: cat test.tar. ...

  6. 获取并检查系统负载\CPU\内存\磁盘\网络

    安装依赖 需要net-tools.namp! CentOS:yum -y install net-tools nmap Ubuntu:apt-get update && apt-get ...

  7. CF1682D Circular Spanning Tree

    题意: 构造题,节点1~n顺时针排列成圆形,告诉你每个点度数奇偶性,让你构造一棵树,树边不相交. 思路: 因为每条边给总度数贡献2,因此如果度数为1的点有奇数个,直接输出no.显然0个度数为1的,也输 ...

  8. 【Java面试】请你简单说一下Mysql的事务隔离级别

    一个工作了6年的粉丝,去阿里面试,在第一面的时候被问到"Mysql的事务隔离级别". 他竟然没有回答上来,一直在私信向我诉苦. 我说,你只能怪年轻时候的你,那个时候不够努力导致现在 ...

  9. 物联网无线数传通信模块设备常见的几种Modbus网关

    物联网无线数传通信常见的几种Modbus网关 以下提到Modbus网关均指Modbus RTU转Modbus TCP,并不涉及对Modbus ASCII数据帧的处理,Modbus ASCII仅支持透明 ...

  10. .NET打包应用设置成自包含

    设置项目的配置文件 在项目的配置文件(.csproj文件)中加入RuntimeIdentifier节点,节点的内容为要打包进入最终程序的目标运行时.更多平台标识符,请看这里RIDs. <Prop ...