关于icpc2020沈阳zyz不会的题

(zyz真是个zz
1.当gcd(a,b) = 1时,x * a % b = c(或大于,等于,小于都是可以哒)等价于x % b = c
2.关于F题
可知道若想将[a,b]区间划分为一块并进行排序,必须保证排完序后的区间[a’,b’]所包含的数据与[a,b]的一样,那么就可以划分为一块,此时两区间和相等,于是对原区间先进行排序,然后从头累加排序前和排序后数组的前缀和,如果在某一时刻相等则ans++,最后输出ans即可。
(所以zyz你想了4h都没想出来的题就这么简单吗???)
3.关于D题
首先看第一行,很明显就是((n + 1) / 2)*((n + 2) / 2),然后第二行就打表到n=100时字符串的情况,然后前边全填b就完了呗
所以zyz你都推出来了不写是几个意思
4.所以对于最简单的G题,身为蒟蒻的zyz竟然用10min的好成绩打完了G题,这让身边1min打完的神犇感到很不好意思所以说zyz不要乱进大神局嘛
5.只打过csp的zyz竟然不知道ACM的签到题不一定在开头

2020 ICPC沈阳站竞赛有相关的目分析和参赛队伍的复盘情况。 在目方面,有2020/2021 ICPC沈阳站DJourney to Un‘Goro ,该可以通过搜索加剪枝的方法解决,还通过简单思考得出\(XY = \lfloor(n + 1) / 2\rfloor\lceil(n + 1) / 2\rceil\),即\(X\)和\(Y\)各取一半时乘积最大,且\(\vert X - Y\vert\leq1\) 。相关代码如下: ```cpp #include <bits/stdc++.h> #define ll long long #define ull unsigned long long #define endl '\n' #define lowbit(i) (i)&(-i) #define all(x) (x).begin(),(x).end() using namespace std; const ll mod=1e9+7; const double inf=1e18; const double eps=1e-8; ll qpow(ll a,ll b){ ll res=1; while(b){ if(b&1) res=res*a%mod; a=a*a%mod; b>>=1; } return res; } ll getinv(ll a){return qpow(a,mod-2);} ll lcm(ll a,ll b){ return a*b/__gcd(a,b); } ll n,lim,cnt,ans; char s[1000006]; void dfs(ll x,ll cnt0,ll cnt1,bool st){ if(cnt0>lim||cnt1>lim) return; if(x==n){ cout<<s<<endl; if(++cnt>=100) exit(0); return; } s[x]='b'; dfs(x+1,cnt0+(st^1),cnt1+st,st); st^=1; s[x]='r'; dfs(x+1,cnt0+(st^1),cnt1+st,st); } int main(){ //cin.tie(0);cout.tie(0);ios::sync_with_stdio(0); cin>>n; ans=(n+1LL)*(n+1LL)/4; lim=(n+2)/2; cout<<ans<<endl; dfs(0,1,0,0); system("pause"); return 0; } ``` 在参赛队伍复盘方面,有队伍过了五个,获得36th名次,认为被虐得很惨。该队伍回想过的好像都挺简单,不过简单D在考场上没做出来,结束后听人讨论“异或”相关内容就脑补出了解法,同时提到这是失而复得的名额,且三人都好久没做了 [^1][^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值