23333再次水惨了。。(心酸啊)

A题呵呵呵呵呵

 #include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int ans=;
int n; cin>>n;
for (int i=; i<=n; i++)
{
string ch; cin>>ch;
if (ch[]=='T') ans+=;
if (ch[]=='C') ans+=;
if (ch[]=='O') ans+=;
if (ch[]=='D') ans+=;
if (ch[]=='I') ans+=;
}
cout<<ans;
return ;
}

B题,,,最后是不对的。。。(被fst了?我也不知道叫什么)

2333就是因为初始化变量的时候吧0x7fffffff达成了0x7ffffff(没错,少了一个f,,导致这个数比1e9小,然后就完蛋了)

 #include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n; cin>>n;
int ansy1=0x7fffffff,ansx1=;
for (int i=; i<=n; i++)
{
int x,y; cin>>x>>y;
ansy1=min(y,ansy1);
ansx1=max(x,ansx1);
}
int ansx2=,ansy2=0x7fffffff; int m; cin>>m;
for (int i=; i<=m; i++)
{
int x,y; cin>>x>>y;
ansx2=max(x,ansx2);
ansy2=min(ansy2,y);
}
cout<<max(,max(ansx2-ansy1,ansx1-ansy2));
}

C题比赛的时候还被hack了2333,,又是因为一个sb问题,(二分的右边界开小了,1e9是不够的。。呵呵呵,真的是到了晚上IQ=-inf了)

C题做的时候水的也比较惨,感觉暴力不对,就开始写二分。

n<m:然后一开始的前m天肯定是(直到m+1天的没吃之前,都是n),ans一开始直接搞成m,那么后面就是考虑这一天能不能被吃完,吃完的情况就是n-(x-1)*x/2<m+x的(这里的x是出去前m天,然后从1开始的),这是可以二分的。所以就各种调。。调到1个多小时。

 #include<bits/stdc++.h>
#define LL long long
using namespace std;
LL n,m;
LL find(LL x)
{
LL l=,r=3e9;
while (l<r)
{
LL mid=l+r>>;
if (n-(mid-)*mid/==m+mid) return mid;
else if (n-mid*(mid-)/<m+mid) r=mid-;
else if (n-mid*(mid-)/>m+mid) l=mid+;
}
if (n-l*(l-)/>m+l) l++;
return l;
}
int main()
{
cin>>n>>m;
if (m>=n)
{
cout<<n;
return ;
}
LL tot=n;
int cnt=;
/*for (;;) //暴力手动对拍2333
{
tot+=m; if (tot>n) tot=n;
tot-=cnt++;
if (tot<=0)
{
cout<<cnt-1<<" ";
break;
}
}*/
LL ans=;
LL x=find(n);
ans=m;
cout<<ans+x;
return ;
}

D题还是比较神的。一开始,心里想,yao这不是(组合数学?!!),(一般就不会了)

然而再一看还是挺简单的。。只需要对一个位置 i 搞出前面有多少个"(" (n个) 和后面有多少个")" (m个) 就好了,枚举每一个 “(” 的位置,每个位置的贡献就是 sigma(C(n-1,i-1)*C(m,i))(i: 1->min(n,m))

(取C(n-1,i-1)的原因就是要保证这一个"("一定要取到)

然而看了一下范围瞬间就蛋疼了。。(抱着侥幸的心理,感觉CF的评测机飞快,一秒跑个10的十几次方没什么问题吧(大雾),就写了那个暴力交上了。。第6个点就T了)

扒题解:有个神奇的东西交范德蒙恒等式!!!%%%  http://blog.csdn.net/acdreamers/article/details/31032763

现在的每个位置的贡献貌似不能直接用范德蒙的那个公式算,,变一下形,变成 sigma(C(n,i)*C(m,i))-sigma(C(n',i)*C(m,i)) (i:1->min(n,m) (min(n',m)))(n'为上一个"("位置,"("的数量)

这样就可以用sigma(C(n,i)*C(m,i))==C(n+m,min(n,m))了,然而这个公式是从0开始的然后我们用的时候要减1,然后后面也减1就抵消了,,23333

这下直接秒A

里面还有一个处理逆元,阶乘什么的鬼东西(反正都是原来从题解上扒下来的)

(吐槽,我感觉这个sb公式要是白天脑子清醒的话能自己手玩(推)出来吧。。。。)

 #include<bits/stdc++.h>
#define N 200005<<1
#define M 200000<<1
#define LL long long
using namespace std;
const int mod=1e9+;
char ch[N];
LL ans,fac[N],inv[N];
int n,sum1[N],sum2[N];
LL ksm(LL x, int p)
{
LL sum=;
for (;p;p>>=,x=x*x%mod)
if (p&) sum=sum*x%mod;
return sum%mod;
}
LL C(int n, int m)
{
return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
int main()
{
scanf("%s",ch+);
n=strlen(ch+);
for (int i=; i<=n; i++)
if (ch[i]=='(') sum1[i]=sum1[i-]+; else sum1[i]=sum1[i-];
for (int i=n; i>=; i--)
if (ch[i]==')') sum2[i]=sum2[i+]+; else sum2[i]=sum2[i+];
inv[]=fac[]=;
for (int i=; i<=M; i++) fac[i]=fac[i-]*i%mod;
inv[M]=ksm(fac[M],mod-);
for (int i=M; i>=; i--) inv[i-]=inv[i]*i%mod;
int last=;
for (int i=; i<=n; i++)
if (ch[i]=='(')
{
// cout<<C(last+sum2[i],min(last,sum2[i]));
ans=((ans+C(sum1[i]+sum2[i],min(sum1[i],sum2[i]))-C(last+sum2[i],min(last,sum2[i]))+mod)%mod)%mod;//while (1);
last=sum1[i];
}
cout<<ans%mod;
return ;
}

cf 785#的更多相关文章

  1. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  2. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  3. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  4. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  5. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  6. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  7. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  8. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  9. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

随机推荐

  1. LauUI 的学习

    LayUI学习笔记 layer laydate layui 学习新技术方法:学习一个新技术,要去把它的文档通读一遍,不管你能不能读明白,就算你不明白也大概能知道它是怎么回事了,一回生二回熟,多读几遍, ...

  2. 页面自动执行js的3种方法

    1.最简单的调用方式,直接写到html的body标签里面:   <html> <body onload="load();"> </body> & ...

  3. 修改gho打造个性ghostxp光盘

    一.更换OEM信息(更改用户名.公司名与电脑名的方法 1.用软碟通提取出ghostxp中的gho镜像文件. 2.,用GHOSTEXP .EXE打开这个GHO文件,提取sysprep目录下的syspre ...

  4. Decimal为SQL Server、MySql等数据库的一种数据类型

    Decimal为SQL Server.MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部份以及小数部分的位数.使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间, ...

  5. 02-01 Android学习进度报告一

    前两天,刚刚安装好有关Android开发有关的软件并配好了环境,有一些体会想要发表. 首先我了解到有一款专门用于Android开发的软件,叫做Android Studio ,是一个IDE集成软件 于是 ...

  6. C# 篇基础知识2——运算符、类型转换、流程控制、枚举、结构体和数组、函数

    1.运算符.类型转换 计算某年y某月m某日d是周几的基姆拉尔森公式公式:int week = (d + 2*m + 3*(m + 1)/5 + y + y/4 - y/100 + y/400 + 1) ...

  7. MyEclipse插件github安装使用

    MyEclipse插件github安装使用   网络上的介绍一堆堆的,但是自己尝试了下,发现问题很多,就动手做个教程. 大纲 1.git客户端安装 2.ssh配置 3.egit安装配置 4.参考资料 ...

  8. 记一次海洋cms任意代码执行漏洞拿shell(url一句话)

    实验环境:海洋CMS6.54(后续版本已该洞已补) 1.后台登录尝试 这个站点是个测试站,站里没什么数据. 进入admin.php,是带验证码的后台登录系统,没有验证码的可以用bp爆破.有验证码的也有 ...

  9. 线程与FORK

    1.线程锁的问题 需要调用进程线程锁处理函数 prefork-----获取父亲进程锁----在fork掉用之前,目的是为了在子进程中获取到可释放的锁 parentfork----释放父亲进程锁 chi ...

  10. dfs+记忆化搜索,求任意两点之间的最长路径

    C.Coolest Ski Route 题意:n个点,m条边组成的有向图,求任意两点之间的最长路径 dfs记忆化搜索 #include<iostream> #include<stri ...