A题大意:

给你l,r,问你在l~r之间,是否存在 a和b互质 , b和c互质 ,但是 a,c不互质 的情况;其中l<=a<b<c<=r;如果存在,就输出a,b,c;不存在就输出-1;

其中(1 ≤ l ≤ r ≤ 1018r - l ≤ 50).

- -r-l<=50,这么水我也是醉了,开个longlong , 枚举他们是否满足以上要求即可,顺便复习了一下辗转相除;

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
long long l,r;
int gcd(long long a,long long b){
if(b==0) return a;
else return gcd(b,a%b);
}
int main(){
cin>>l>>r;
for(long long i=l;i<=r;i++)
for(long long j=i+1;j<=r;j++)
for(long long k=j+1;k<=r;k++){
if(i!=j && i!=k && j!=k){
if(gcd(j,i)==1 && gcd(k,j)==1 && gcd(k,i)!=1){
cout<<i<<" "<<j<<" "<<k;
return 0;
}
}
}
cout<<"-1";
return 0;
}

 

B题大意:

你给第一个朋友cnt1个数,给第二个朋友cnt2个数,在给第一个朋友的数不可以被x整除,给第二个朋友的数不可以被y整除,如果某个数既不能被x整除也不能被y整除,那么它不能同时出现在两个朋友的数里

然后你得在1.2.3.....n中选出符合要求的cn1个数和cnt2个数,问你最小的n为多少?

感觉这套的B题好坑啊- -(其实是自己弱....)

刚开始以为枚举就好了,B题嘛反正,然后还是超时了;之后觉得那就优化一下暴力好了- -结果还是不行;

后面想到利用余数,例如 x个数里,可以有x-1不被x整除的数之类的,但是处理出来的答案还是会有偏差

然后实在没有办法了!就看了别人的代码!- - 妈蛋...自己都想到用余数了都,还不知道要二分答案!我个傻逼....

以上是我的傻逼的思考过程,- -说说这一题的正确思路,就是常规的二分答案;

如果验证是否可行呢?(方法有很多,这里说一下我的思路)

pp为二分的那个数:

 __int64 qq =  (pp - pp/x - pp/y + pp/(x*y));//符合要求的cnt1+cnt2,注意这里是+pp/(x*y),因为除以x和除以y,所以扣掉的个数有重复的地方;
int cont1 = max(0, (int)(a-(pp/y-pp/(x*y))));//

int cont2 = max(0, (int)(b-(pp/x-pp/(x*y))));
if(qq >= cont1+cont2)
return 1;
return 0;

附上代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int a, b, x, y;
int judge(long long pp){
__int64 qq = (pp - pp/x - pp/y + pp/(x*y));
int cont1 = max(0, (int)(a-(pp/y-pp/(x*y))));
int cont2 = max(0, (int)(b-(pp/x-pp/(x*y))));
if(qq >= cont1+cont2)
return 1;
return 0; }
long long solve(long long l, long long r){
__int64 res;
while(l <= r){
__int64 mid = (l+r) / 2;
if(judge(mid)){
res = mid;
r = mid - 1;
}
else
l = mid + 1;
}
return res;
}
int main(){
while(scanf("%d%d%d%d", &a, &b, &x, &y) == 4){
long long ans = solve(1, (a+b)*2+1);
printf("%I64d\n", ans);
}
return 0;
}

  

C题大意:

给你一个数列1.2.3...n,让你交换这个数列中的数,使得相邻两个数相减得出的数有k个是不同的,让你输出你交换后满足题意的数列;

- -感觉是见过最傻逼的C题,大概就是贪心的思想吧。

你从头尾开始枚举,交换枚举的之后,他们的差值肯定都不相同。之后乱搞一下就可以了,你可以交换枚举k-2次,然后按顺序输出;反正方法很多,乱搞搞就过了;

附上代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int main(){
int n,k,j=1;
cin>>n>>k;
int temp1=1,temp2=n;
for(int i=1;i<=n;i++){
if(j%2){
cout<<temp1<<" ";temp1++;
}
else {
cout<<temp2<<" ";temp2--;
}
if(j!=k) j++;
}
return 0;
}

 

D题线段树...不会,只剩几天了,觉得没有学习的必要

codeforces #275 div2题解的更多相关文章

  1. Codeforces ECR50 div2题解

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

  2. Codeforces 1323 div2题解ABC

    A. Even Subset Sum Problem 签到题 #include <bits/stdc++.h> using namespace std; template <type ...

  3. Codeforces Round #707 Editorial Div2 题解

    CF1501 Div2 题解 CF1501A 这道题其实是一道英语阅读题,然后样例解释又不清晰,所以我看了好久,首先它告诉了你每个站点的预期到达时间 \(a_i\) ,以及每个站点的预期出发时间 \( ...

  4. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  5. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  6. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  7. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  8. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  9. Codeforces Round #556 题解

    Codeforces Round #556 题解 Div.2 A Stock Arbitraging 傻逼题 Div.2 B Tiling Challenge 傻逼题 Div.1 A Prefix S ...

随机推荐

  1. 并查集(Union-Find)算法介绍

    原文链接:http://blog.csdn.net/dm_vincent/article/details/7655764 本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构 ...

  2. S2SH新手框架建立具体过程

    S2SH集成框架新手学习总结 第一章:S2SH框架新手搭建准备工作仅仅都须要导入那些文件 第二篇:S2SH框架新手搭建具体过程 版本号信息:Struts2.3+Hibernate4.3.6+Sprin ...

  3. jQuery版推箱子游戏详解和源码

    前言 偶然间看到很多用js写游戏的感觉很炫酷的样子,所以就想试试,就看了一些资料和某前端站点的视屏.于是乎就自己动手实践了一下,上推箱子截图 感觉很丑陋,但是功能是实现了.再说貌似大多都是这样的吧,这 ...

  4. XP 多国语言包

    http://download.microsoft.com/download/f/6/4/f648c363-6975-470c-8202-ac5aea706109/WindowsXP-KB835935 ...

  5. Asp.net MVC + EF + Spring.Net 项目实践3

    Asp.net MVC + EF + Spring.Net 项目实践 这一篇要整合Model层和Repository层,提供一个统一的操作entity的接口层,代码下载地址(博客园上传不了10M以上的 ...

  6. 基于Cocos2dx + box2d 愤怒的小鸟的实现Demo

    1. Demo初始界面 2. 游戏界面 3. 精确碰撞检測 4. 下载  压缩文件文件夹 AngryBird source    愤慨的小鸟Demo源码,基于Cocos2dx C++,以及box2d技 ...

  7. 如何完成Nexus 9上电后激活过程

    所述被激活,因为它是Nexus 9经过努力获得启动OTA最新更新包,而且因为Google关闭一堵墙.原因无法下载更新包. 因为是第一次开机,它不能被设置usb debugging, 无法adb去杀死w ...

  8. iOS程序发布时出现your application is being uploaded解决办法

    当用Xcode发布app时候出现“your application is being uploaded”或者用Application Loader 一直出现“ 正在通过ITUNES STORE进行鉴定 ...

  9. Yii Framework2.0开发教程(4)在yii中定义全局变量

    在yii中定义全局变量最好的地方是入口脚本处.也就是web目录中的index.php文件 比如我们在defined('YII_ENV') or define('YII_ENV', 'dev');后写上 ...

  10. Entity Framework 处理并发

    Entity Framework 处理并发 在以前的两个教程你对关联数据进行了操作.本教程展示如何处理并发性.您将创建工作与各Department实体的 web 页和页,编辑和删除Department ...