A:n==2?2:1。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
int n;
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
n=read();
if (n==) cout<<;else cout<<;
return ;
}

  B:sort一下,组内人数相同的放一组,超了就换一组。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 100010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
int n,ans[N],cnt;
struct data
{
int x,y;
bool operator <(const data&a) const
{
return x<a.x;
}
}a[N];
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
n=read();
for (int i=;i<=n;i++) a[i].x=n-read(),a[i].y=i;
sort(a+,a+n+);
for (int i=;i<=n;i++)
{
int t=i;
while (t<n&&a[t+].x==a[i].x&&t+-i+<=a[i].x) t++;
if (t-i+!=a[i].x) {cout<<"Impossible";return ;}
cnt++;
for (int j=i;j<=t;j++) ans[a[j].y]=cnt;
i=t;
}
printf("Possible\n");
for (int i=;i<=n;i++) printf("%d ",ans[i]);
return ;
}

  C:f[i][j]前i个有j块那啥的方案数,转移显然。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define P 998244353
#define N 2010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
int n,m,k,f[N][N];
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
n=read(),m=read(),k=read();
f[][]=m;
for (int i=;i<=n;i++)
{
f[i][]=m;
for (int j=;j<=k;j++)
f[i][j]=(f[i-][j]+1ll*f[i-][j-]*(m-))%P;
}
cout<<f[n][k];
return ;
}

  D:kruskal求出最小瓶颈树,最后使所有标记点连接成一个连通块的边即为答案。莫名其妙的写了一堆东西还wa了两发。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 200010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
int n,m,k,fa[N];
bool flag[N],f[N];
struct data
{
int x,y,z;
bool operator <(const data&a) const
{
return z<a.z;
}
}e[N];
namespace tree
{
int p[N],t,size[N],dfn[N],cnt;
struct data{int to,nxt,len;
}edge[N<<];
void addedge(int x,int y,int z){t++;edge[t].to=y,edge[t].nxt=p[x],edge[t].len=z,p[x]=t;}
void dfs(int k,int from)
{
size[k]=f[k];dfn[k]=++cnt;
for (int i=p[k];i;i=edge[i].nxt)
if (edge[i].to!=from)
{
dfs(edge[i].to,k);
size[k]+=size[edge[i].to];
}
}
}
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
n=read(),m=read(),k=read();
for (int i=;i<=k;i++) f[read()]=;
/*for (int i=1;i<=m;i++)
{
int x=read(),y=read(),z=read();
addedge(x,y,z),addedge(y,x,z);
}*/
for (int i=;i<=m;i++) e[i].x=read(),e[i].y=read(),e[i].z=read();
sort(e+,e+m+);
for (int i=;i<=n;i++) fa[i]=i;
for (int i=;i<=m;i++)
{
int p=find(e[i].x),q=find(e[i].y);
if (p!=q) fa[q]=p,tree::addedge(e[i].x,e[i].y,e[i].z),tree::addedge(e[i].y,e[i].x,e[i].z),flag[i]=;
}
tree::dfs(,);
for (int i=m;i>=;i--)
if (flag[i])
{
int x=e[i].x,y=e[i].y;
if (tree::dfn[x]<tree::dfn[y]) swap(x,y);
if (tree::size[x]&&tree::size[x]<k) {for (int j=;j<=k;j++) printf("%d ",e[i].z);return ;}
}
return ;
}

  E:真的自闭了。本身就非常思博还想了50min。肝F无果回来hack的时候,在最后1min发现了输出没开I64d,居然还犹豫了一下是不是实际上并不会出问题,然后还真的就没改。看来就算define int long long也解决不了我天天爆int了。

  注意到对于偶数位我们应该让这里的前缀和尽量小,因为下一位可以任意取。于是记录到每个偶数位时的最小前缀和即可。同时由平方差公式,可以暴力枚举偶数位上的数的因数来快速枚举每种情况。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
#define ll long long
#define N 200010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
int n,f[N];
const double eps=1E-;
ll a[N];
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
n=read();
for (int i=;i<=n/;i++) a[i<<]=read();
for (int i=;i<=n;i+=)
{
for (int j=;j*j<a[i];j++)
if (a[i]%j==)
{
int x=j,y=a[i]/j;//q-p=x q+p=y
if ((x+y&)||(y-x&)) continue;
int q=x+y>>,p=y-x>>;//p i-1ǰ׺ q iǰ׺
if (f[i-]<p) f[i]=q,a[i-]=1ll*p*p-1ll*f[i-]*f[i-];
}
if (f[i]==) {cout<<"No";return ;}
}
cout<<"Yes\n";
for (int i=;i<=n;i++) printf("%I64d ",a[i]);
return ;
}

  一夜回到解放前。虽然看起来大号还是不会变成小号的。

  不过好像D和E都fst了不少?

  然后我还发现F原来是真随机本来一直在想靠谱做法。

  再也不打Chinese Round了

  result:rank 477 rating -52

Avito Cool Challenge 2018 自闭记的更多相关文章

  1. Codeforces Avito Code Challenge 2018 D. Bookshelves

    Codeforces Avito Code Challenge 2018 D. Bookshelves 题目连接: http://codeforces.com/contest/981/problem/ ...

  2. cf掉分记——Avito Code Challenge 2018

    再次作死的打了一次cf的修仙比赛感觉有点迷.. 还好掉的分不多(原本就太低没法掉了QAQ) 把会做的前三道水题记录在这.. A: Antipalindrome emmmm...直接暴力枚举 code: ...

  3. Avito Cool Challenge 2018

    考挂了.. A - Definite Game 直接看代码吧. #include<cstdio> #include<cstring> #include<algorithm ...

  4. Avito Cool Challenge 2018(div1+2)

    A. Definite Game: 题意:输入N,输出最小的结果N-x,其中x不少N的因子. 思路:N=2时,输出2:其他情况输出1:因为N>2时,N-1不会是N的因子. #include< ...

  5. Avito Code Challenge 2018

    第一次打CF,很菜,A了三道水题,第四题好像是是数位DP,直接放弃了.rateing从初始的1500变成了1499,还是绿名,这就很尴尬.之后觉得后面的题目也没有想象的那么难(看通过人数)过两天吧剩下 ...

  6. Avito Cool Challenge 2018 Solution

    A. Definite Game 签. #include <bits/stdc++.h> using namespace std; int main() { int a; while (s ...

  7. Avito Cool Challenge 2018 E. Missing Numbers 【枚举】

    传送门:http://codeforces.com/contest/1081/problem/E E. Missing Numbers time limit per test 2 seconds me ...

  8. Avito Cool Challenge 2018 C. Colorful Bricks 【排列组合】

    传送门:http://codeforces.com/contest/1081/problem/C C. Colorful Bricks time limit per test 2 seconds me ...

  9. Avito Cool Challenge 2018 B. Farewell Party 【YY】

    传送门:http://codeforces.com/contest/1081/problem/B B. Farewell Party time limit per test 1 second memo ...

随机推荐

  1. node的 node-sass@^4.11.0 出现:npm: no such file or directory, scandir '.../node_modules/node-sass/vendor'

    解决办法: 查看node_modules文件夹,发现,并无vender 文件夹.如下图: 2.  在 node_modules/node-sass 下创建 vendor 文件夹 3.  最后运行: n ...

  2. python函数之format

    自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串,它增强了字符串格式化的功能. 基本语法是通过{}和:来代替%.format函数可以接受不限 ...

  3. 前端开发利器 livereload -- 从此告别浏览器F5键

    各位从事前端开发的童鞋们,大家每天coding && coding,然后F5 && F5,今天推荐一个静态文件在浏览器中自动更新的扩展 livereload,不同手动刷 ...

  4. Centos7下使用RDO方式安装openstack-r版

    一.前言 OpenStack是一个开源的云计算管理平台项目,OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单.可大规模扩展.丰富.标准统一的云计算管理平台.OpenStack通过各种 ...

  5. 使用json.dumps转换django queryset的datatime报错问题解决

    转换成json时使用的方法如下: json.dumps(list(models.userlist.objects.values("vu"))) 报错信息如下: Traceback ...

  6. 下一个时代的发展架构竟然是它!FaaaaaaaaS到底是个啥?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云serverless团队发表于云+社区专栏 导读:2018年7月6 - 7日,一年一度的技术圈盛会ArchSummit全球架构师 ...

  7. Annotation 使用备忘

    title: Annotation 使用备忘 date: 2016-11-16 23:16:43 tags: [Annotation] categories: [Programming,Java] - ...

  8. Gdiplus的使用

    使用步骤: 1.包括相应的头文件及引入相应的lib #include <GdiPlus.h> #pragma comment(lib, "gdiplus.lib") u ...

  9. Java第二次实验20135204

    一.实验过程: 1.先创建一个学号命名的文档: 2.一个百分制成绩转化为等级: 3.新建一个包,另一个测试: 4.打开UML,建模软件umbrello进行建模: 相关程序: 5.我的保存: 二.遇到的 ...

  10. YQCB冲刺周第六天

    站立会议如上图 任务看板: 今天的任务为依旧为将用户记录的数据添加到数据库中,以及金额球的设置. 遇到的问题为金额球在jsp页面的显示.