A:签到。room里有一个用for写的,hack了一发1e8 1,结果用了大概600+ms跑过去了。惨绝人寰。

#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,m;
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
n=read(),m=read();
cout<<(n*-)/m++(n*-)/m++(n*-)/m+;
return ;
}

  B:讨论一发即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 1010
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();
while (n--)
{
int x=read(),y=read();
int p=y;if (y-x+&) y--;
int ans=x&?(y-x+>>):-(y-x+>>);
if (p-x+&) ans+=p&?-p:p;
printf("%d\n",ans);
}
return ;
}

  C:对矩形求个交,冷静一下瞎算算就行了。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 1010
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 T,n,m;
ll area(int x1,int y1,int x2,int y2){if (x1>x2||y1>y2) return ;return 1ll*(x2-x1+)*(y2-y1+);}
ll calcwhite(int x1,int y1,int x2,int y2)
{
ll s=area(x1,y1,x2,y2);
if (x1+y1&) return s>>;
else return s+>>;
}
ll calcblack(int x1,int y1,int x2,int y2){return area(x1,y1,x2,y2)-calcwhite(x1,y1,x2,y2);}
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
T=read();
while (T--)
{
n=read(),m=read();
int x1=read(),y1=read(),x2=read(),y2=read();
int x3=read(),y3=read(),x4=read(),y4=read();
int x5=max(x1,x3),y5=max(y1,y3),x6=min(x2,x4),y6=min(y2,y4);
ll white=calcwhite(,,n,m),black=calcblack(,,n,m);
ll c1=calcblack(x1,y1,x2,y2);white+=c1,black-=c1;
black+=calcwhite(x3,y3,x4,y4),white-=calcwhite(x3,y3,x4,y4);
if (area(x5,y5,x6,y6)) black+=calcblack(x5,y5,x6,y6),white-=calcblack(x5,y5,x6,y6);
printf("%I64d %I64d\n",white,black);
}
return ;
}

  D:考虑答案为i时的最小和最大分裂次数是多少,各种递推式求通项到最后能捣鼓出来两个式子。显然答案若存在与n相差不会很大,暴力枚举check即可。当然式子不能直接算,需要各种乱搞防溢出。数学太差推一年。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll unsigned long long
#define N 1010
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);}
ll read()
{
ll 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 T,n,m;
int main()
{
/*#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif*/
T=read();
while (T--)
{
ll n=read(),m=read();
int ans=-;
for (int i=(n>=?n-:);i<n;i++)
{
ll k=;
for (int j=;j<=n-i+;j++) k<<=;
k-=n-i;k-=;
if (k<=m)
{
if (n+i+>=) {ans=i;break;}
ll k=;for (int j=;j<=n-i-;j++) k<<=;k--;ll t=k+;
for (int j=;j<=n+i+;j++)
{
k<<=;
if (k>=*m+) {ans=i;break;}
}
if (ans!=-) break;
t<<=;if (t>=*m+) {ans=i;break;}
t<<=;if (t>=*m+) {ans=i;break;}
k+=t;if (k>=*m+) {ans=i;break;}
t=;
for (int j=;j<=*i;j++)
{
t<<=;
if (t>=*m+) {ans=i;break;}
}
if (ans!=-) break;
k+=t;if (k>=*m+) {ans=i;break;}
}
}
if (ans==-) printf("NO\n");
else printf("YES %d\n",ans);
}
return ;
}

  E:这个条件比较显然的等价于子矩形中每一行都能重排成回文串(即出现次数为奇数的字母不超过一个)且对称行的字母组成相同。预处理每一行的每一段是否合法以及字母出现次数的哈希值,暴力枚举子矩形左右端点,对上下端点的每段合法区间马拉车即可。完全没时间写了。

  F:没看

  小号打的。result:rank 139 rating +92

Codeforces Round #524 Div. 2 翻车记的更多相关文章

  1. Codeforces Round#500 Div.2 翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  2. Codeforces Round#509 Div.2翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  3. Educational Codeforces Round 56 Div. 2 翻车记

    A:签到. B:仅当只有一种字符时无法构成非回文串. #include<iostream> #include<cstdio> #include<cmath> #in ...

  4. Educational Codeforces Round 55 Div. 2 翻车记

    A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...

  5. Codeforces Round#514 Div.2 翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  6. Codeforces Round#516 Div.1 翻车记

    A:开场懵逼.然后发现有人1min过,于是就sort了一下,于是就过了.正经证明的话,考虑回文串两端点一定是相同的,所以最多有Σcnti*(cnti+1)/2个,cnti为第i种字母出现次数.而sor ...

  7. Codeforces Round #517 Div. 1翻车记

    A:真的懵逼了.冷静了半天之后决定二分一下答案,然后先a安排上尽量小的再贪心地一个个扩大.40min才过.这个做法非常怂的以代码复杂度和时间复杂度为代价换取了比较稳的正确性,事实上由于1~n可以组合出 ...

  8. Educational Codeforces Round 53 Div. 2翻车记

    A:差点开场懵逼.只要有相邻两位不同就可以作为答案. #include<iostream> #include<cstdio> #include<cmath> #in ...

  9. Codeforces Round #524 (Div. 2)(前三题题解)

    这场比赛手速场+数学场,像我这样读题都读不大懂的蒟蒻表示呵呵呵. 第四题搞了半天,大概想出来了,但来不及(中途家里网炸了)查错,于是我交了两次丢了100分.幸亏这次没有掉rating. 比赛传送门:h ...

随机推荐

  1. SVN的使用——下载、安装

    今天我们来学习一下如何使用SVN(Subversion) 既然要使用SVN那么我们就先来认识一下SVN.SVN的全名是Subversion,它是一个自由,开源的版本控制系统.在Subversion管理 ...

  2. redis外部访问

    1.redis的搭建这里就不做描述的了,可以参考我的另外一个博客. http://www.cnblogs.com/ll409546297/p/6993778.html 2.说明一下我们在其他服务器上面 ...

  3. JS代码优化及技巧

    案例一  对象参数独立化 情景:为多个日期文本框添加日期选择器 源代码: $('#PropertySalesAdviceExchnagedDate1').datepicker({ showOn: 'b ...

  4. iReport jasperReports 生成表格

    使用iReport生成表格   一 环境:iReport-5.6.0  JDK7 1.注意,iReport的最新版本目前还不支持JDK8,如果项目工程已经配置了JDK8,那也不用去修改环境变量和工程的 ...

  5. java中的比较:instanceof、equals(hashcode)、==

    import javassist.expr.Instanceof; class Person{ String s; Person(String s){ this.s=s; } } class Man ...

  6. Error -26377: No match found for the requested parameter

    Error -26377: No match found for the requested parameter

  7. Selenium(Python)生成Html测试报告

    由于Python3已经不支持HTMLTestRunner了, 无论是PyCharm还是pip都无法安装成功, 所以只能去 http://tungwaiyip.info/software/HTMLTes ...

  8. 查看linux系统版本命令汇总

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然.   1.Linux查看版本当前操作系统内核信息   命令:uname -a

  9. leetcode-岛屿的个数

    岛屿的个数 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. 示例 ...

  10. 解析Java中final关键字的各种用法

    首先,我们可以从字面上理解一下final这个英文单词的中文含义:“最后的,最终的; 决定性的; 不可更改的:”.显然,final关键词如果用中文来解释,“不可更改的”更为合适.当你在编写程序,可能会遇 ...