A:简单题;我们可以把点换成段处理,然后枚举段看是否被霸占了;

#include<iostream>

#include<string>
#include<math.h>
#include<algorithm>
using namespace std;
int b[];
int main()
{
    int n;
    cin>>n;
    int l,r;
    cin>>l>>r;
    for (int i=l;i<r;i++)
        b[i+]=;
    for (int i=;i<=n;i++)
    {
        cin>>l>>r;
        for (int i=l;i<r;i++)
            if (b[i+]) b[i+]=;
    }     int sum=;
    for (int i=;i<=;i++)
        if (b[i]) sum++;
    cout<<sum<<endl;
    return ;

}

B:数学题,题目越长越简单,这个道理没错啊,开始没推出来,猜了个结论;

可以达到的值的范围是[L,R],[2*L,2*R],[3*L,3*R],......[X*L,X*R],只可能是这些结果。。

所以XL<=ni<=X*R;

结论就是:

  if (a/l*l<=a&&a/l*r>=a) cout<<"Yes"<<endl;

C题:题目简单,但是很难,没做出来。。。。

大概思路是:先将每个书分解质因数CI,然后将这CI个质因数分配到N个盒子里,组合数学求这个方案数:AI=C(ci+n-1,n-1);ps:我还推不出这个等式啊。。。。。

ANS=a[i]乘积%10000000007;

对了求C(N,M)=C(N-1,M-1)+C(N,M-1)可以运用数组求出

#include<iostream>

#include<algorithm>
#include<string.h>
#include<map>
using namespace std;
map<int,int> v;
const int mod=;
int c[][];
int n,a[],cnt=;
long long num[]; void getnum(int x)
{
    for (int i=;i*i<=x;i++)
    {
        while (x%i==) {
            if (v.count(i))
            {
                num[v[i]]++;
                x/=i;
            }
            else{
                    v[i]=++cnt;
            num[v[i]]++;
            x/=i;
            }
        }
    }
    if (x==) return;
    if (v.count(x))
        num[v[x]]++;
        else
        {
           v[x]=++cnt;
           num[v[x]]++;
        }
    } int main()
{
    c[][]=;
    for (int i=;i<=;i++)
        for (int j=;j<=i&&j<=;j++)
        {
        if (j==||j==i) c[i][j]=;
        else
        c[i][j]=(c[i-][j-]+c[i-][j])%mod;
        }     int n;
    cin>>n;
    for (int i=;i<=n;i++)
    {
        int x;
        cin>>x;
        getnum(x);
    }     long long ans=;
    for (int i=;i<=cnt;i++)
        ans=ans*c[num[i]+n-][n-]%mod;
    cout<<ans<<endl;
    return ;
}

D题:个人认为这题比C简单,赛后wo耐心的把公式推出了,其实也比较好推的

ANS:(v[i]-2)u[i]+2*(n-v[i]+1) / (2*u[i]*v[i]);

卡在求U[I],V[I];

居然有这样的神结论:因为10^9的素数很密集,可以直接暴力求解,吓尿了。。。。

#include<iostream>
#include<string.h>
#include<algorithm>
#include<math.h> using namespace std;
int prime[];
int cnt=;
int vis[+]; void init()
{
      for (int i=;i<=;i++){
      if (vis[i]) continue;
      prime[++cnt]=i;
      for (int j=i+i;j<=;j+=i)
      vis[j]=;
   }
} long long  gcd(long long  x,long long  y)
{
    if (x<y) swap(x,y);
    if (x%y==) return y;
    return gcd(y,x%y);
} long long  find1(long long  x)
{
    while ()
    {
        int i=;
            while (i<=cnt)
            {
            if (x%prime[i]==&&x!=prime[i]) {x--;i=;continue;}
            i++;
            }
        return x;
    }
} long long  find2(long long  x)
{
    x++;
    while ()
    {
        int i=;
         while (i<=cnt)
         {
            if (x%prime[i]==&&x!=prime[i]) {x++;i=;continue;}
            i++;
         }
        return x;
    }
} int main()
{
   int n;
   init();
   cin>>n;
   for (int i=;i<=n;i++)
   {
       int x;
       cin>>x;
       long long l=find1(x),r=find2(x);
       long long a=(l-)*r+*(x-l+),b=*(l*r);
       cout<<a/gcd(a,b)<<"/"<<b/gcd(a,b)<<endl;
   }    return ;

}

可见我弱的一般性。。。

codeforces #232 div2 解题报告的更多相关文章

  1. Codeforces #263 div2 解题报告

    比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...

  2. Codeforces Round#320 Div2 解题报告

    Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...

  3. Codeforces Round #299 Div2 解题报告

    这场比赛并没有打现场,昨天晚上做了ABCD四道题,今天做掉了E题 以前还没有过切完一场比赛的所有题呢~爽~ A. Tavas and Nafas   Today Tavas got his test ...

  4. codeforces 31C Schedule 解题报告

    题目链接:http://codeforces.com/problemset/problem/31/C 题目意思:给出 n 个 lessons 你,每个lesson 有对应的 起始和结束时间.问通过删除 ...

  5. codeforces 499B.Lecture 解题报告

    题目链接:http://codeforces.com/problemset/problem/499/B 题目意思:给出两种语言下 m 个单词表(word1, word2)的一一对应,以及 profes ...

  6. codeforces 495C. Treasure 解题报告

    题目链接:http://codeforces.com/problemset/problem/495/C 题目意思:给出一串只有三种字符( ')','(' 和 '#')组成的字符串,每个位置的这个字符 ...

  7. codeforces 490B.Queue 解题报告

    题目链接:http://codeforces.com/problemset/problem/490/B 题目意思:给出每个人 i 站在他前面的人的编号 ai 和后面的人的编号 bi.注意,排在第一个位 ...

  8. CodeForces 166E -Tetrahedron解题报告

    这是本人写的第一次博客,学了半年的基础C语言,初学算法,若有错误还请指正. 题目链接:http://codeforces.com/contest/166/problem/E E. Tetrahedro ...

  9. codeforces 489A.SwapSort 解题报告

    题目链接:http://codeforces.com/problemset/problem/489/A 题目意思:给出一个 n 个无序的序列,问能通过两两交换,需要多少次使得整个序列最终呈现非递减形式 ...

随机推荐

  1. 【原】简述使用spark集群模式运行程序

    本文前提是已经正确安装好scala,sbt以及spark了   简述将程序挂载到集群上运行的步骤: 1.构建sbt标准的项目工程结构: 其中: ~/build.sbt文件用来配置项目的基本信息(项目名 ...

  2. Delphi的"Invalid pointer operation"异常的解决办法

    今天用Delphi编写了个dll,用到了TStringList来传递多参数,如下: [delphi] view plaincopy 01.function DBM_SetParam(procName: ...

  3. [读书心得]资料分页的优化,以SQL 2012的 OFFSET-FETCH为例

    这是我的文章备份,原始出处:[读书心得]资料分页的优化,以SQL 2012的 OFFSET-FETCH为例 http://www.dotblogs.com.tw/mis2000lab/archive/ ...

  4. Ubuntu kylin系统改中文系统文件名为英文

    刚装好系统,将使用语言改成了中文,结果重启后,提示是否将文件系统的名字改为新的,我一不注意,点了是...这样,在以后使用终端的时候,会有中文来干扰,所以需要改回英文. 方法如下: 输入两个命令即可: ...

  5. IOS下载资源zip到本地然后读取

    思路是 1.ios下载服务器上的zip资源包(图片,声音等经过zip压缩的资源包)到本地 2.解压zip到程序目录 3.从程序目录加载资源文件 一.下载zip资源 [cpp]-(NSString*)D ...

  6. 使用Android Studio开发J2SE项目方法

    0.前言 最近因为要为项目开发一个底层的Java应用,所以非常偶然的遇到了这样一个问题,过去Eclipse有Java Project而现在手头使用Android Studio并不能直接建立Java应用 ...

  7. 判断Check复选框是否选中

    <div id="prm_div" style="font-size: 12px;" align="left"> <for ...

  8. android开发系列之git常用命令

    最近因为跳槽到新公司,然后新公司里面的代码管理工具是gitLab,所以我想在这篇博客里面整理一下git常用的语法. GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托 ...

  9. Objective-C面向对象(四)

    1.协议(protocol)和委托 1.1 规范.协议与接口 OC中协议的作用就相当于其他语言中接口的作用.协议定义的是多个类共同的公共行为规范,协议通常定义一组公用方法,但不提供实现. 1.2 定义 ...

  10. WPF——数据绑定(一)什么是数据绑定

    注意:本人初学WPF,文中可能有表达或者技术性问题,欢迎指正!谢谢! 一:什么是数据绑定? “Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简 ...