HH的军训(容斥)
1248: HH的军训
时间限制: 1 Sec 内存限制: 128 MB 提交: 95 解决: 11 [提交][状态][讨论版]
题目描述
大学里,最难忘的事情莫过于军训了,白白的HH童鞋就被无情的晒黑了,话说军训期间,最怕的就是被教官逗了,俗话说:珍爱生命,远离教官。教官总爱让同学们站方阵,由于同学很多,难免会有前面的同学挡着后面的同学,为了远离教官,大家都希望自己站的位置教官看不到自己,现在假如同学们站在一个有坐标点的矩阵上,同学们都站在每一组整数点上,而教官站在坐标(0,0)上,请问此时有多少个位置教官可以直接看到!
输入
第一行输入一个T,代表T组测试数据。
接下来每行输入两个数字M,N,对于任意一个同学的坐标位置(x,y),都有1<=x<=M<=10000,1<=y<=N<=10000.
输出
输出有多少位置教官能够看到。
样例输入
2
1 4
2 3
样例输出
4
5
题解:容斥,少了个等号,错了半天。。。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
typedef long long LL;
vector<int>p;
void getp(int x){
for(int i=2;i*i<=x;i++){//太马虎了,错了半天,发现少了个等号。。。。。
if(x%i==0){
p.push_back(i);
while(x%i==0)x/=i;
}
}
if(x>1)p.push_back(x);
}
int getn(int x){
int sum=0;
/*for(int i=0;i<p.size();i++){
cur=p[i];
sum+=x/cur;
for(int j=i+1;j<p.size();j++){
cur*=-p[j];
sum+=x/cur;
}
}*///这种方法不行如果是2,3,4,则2,4选不了。。。。
for(int i=1;i<(1<<p.size());++i){
int num=0,mult=1;
for(int k=0;k<(int)p.size();k++){
if(i&(1<<k)){
//1,10,11..1.10.100
mult*=p[k];
num++;
}
}
int cur=x/mult;
if(num&1)sum+=cur;//少了等号。。
else sum-=cur;
}
//printf("%d\n",sum);
return sum;
}
int main(){
int T,M,N;
scanf("%d",&T);
while(T--){
scanf("%d%d",&M,&N);
int ans=M;
for(int i=2;i<=N;i++){
p.clear();
getp(i);
ans+=M-getn(M);
}
printf("%d\n",ans);
}
return 0;
}
4 6被2 3挡了
HH的军训(容斥)的更多相关文章
- 洛谷P5206 [WC2019]数树 [容斥,DP,生成函数,NTT]
传送门 Orz神仙题,让我长了许多见识. 长式子警告 思路 y=1 由于y=1时会导致后面一些式子未定义,先抓出来. printf("%lld",opt==0?1:(opt==1? ...
- LOJ3102. 「JSOI2019」神经网络 [DP,容斥,生成函数]
传送门 思路 大部分是感性理解,不保证完全正确. 不能算是神仙题,但我还是不会qwq 这题显然就是求:把每一棵树分成若干条链,然后把链拼成一个环,使得相邻的链不来自同一棵树,的方案数.(我才不告诉你们 ...
- NOIP2019模拟2019.9.20】膜拜大会(外向树容斥,分类讨论)
传送门. 题解: 我果然是不擅长分类讨论,心态被搞崩了. 注意到\(m<=n-2\),意味着除了1以外的位置不可能被加到a[1]两遍. 先考虑个大概: 考虑若存在\(x,x-1,-,2\)(有序 ...
- POJ1091跳蚤(容斥 + 唯一分解 + 快速幂)
题意:规定每次跳的单位 a1, a2, a3 …… , an, M,次数可以为b1, b2, b3 …… bn, bn + 1, 正好表示往左,负号表示往右, 求能否调到左边一位,即 a1* b1 ...
- HDU 4059 容斥初步练习
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> ...
- HDU 4336 Card Collector (期望DP+状态压缩 或者 状态压缩+容斥)
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 析:期望DP,是很容易看出来的,然后由 ...
- 【BZOJ-4455】小星星 容斥 + 树形DP
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 204 Solved: 137[Submit][Status] ...
- cf#305 Mike and Foam(容斥)
C. Mike and Foam time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- UVa12633 Super Rooks on Chessboard(容斥 + FFT)
题目 Source http://acm.hust.edu.cn/vjudge/problem/42145 Description Let’s assume there is a new chess ...
随机推荐
- 通过配置Tomcat,让Android真机通过局域网访问PC的文件
在 Tomcat 根目录,找到conf\server.xml文件. 1.打开server.xml查找修改端口为8080端口: <Connector port="8080" p ...
- ssh环境搭建并实现登录功能
参照了这篇博客,但是里面有些地方进行了更改 http://wenku.baidu.com/link?url=edeegTquV2eR3CJ5-zvNcJbyuq11Afp-lD2Fz2jfmuHhV1 ...
- Objective-c (多输入参数的方法)
一个方法可能具有多个输入参数.在头文件中,可以定义带有多个输入参数的方法: - (void)setIntX:(int)n andSetIntY:(int)d 下面通过一个例子来说明它的具体用法: #i ...
- Android应用开发基础篇(16)-----ScaleGestureDetector(缩放手势检测)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/11/2390274.html 一.概述 ScaleGestureDetector这个类是专门用来 ...
- HDU2084-数塔
描述: 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 代码: 简单的动态规划 ...
- ASP.NET jQuery 随笔 显示RadioButtonList成员选中的内容和值
通过jQuery来获取RadioButtonList成员内容. <%@ Page Language="C#" AutoEventWireup="true" ...
- ASP.NET MVC进阶之路:深入理解依赖注入(DI)和控制反转(IOC)
0X1 什么是依赖注入 依赖注入(Dependency Injection),是这样一个过程:某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点.在程序运行过程中,客户 ...
- systemd.service 中文手册
版权声明 本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布. 无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失. 自由使用:任何人都可以自 ...
- 技术不牛如何才拿到国内IT巨头的Offer
不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic...在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技 ...
- CRC32 vs Java.HashCode
找了容量为27万中文词库进行试验 CRC32 中冲突率 < 0.01% 而 Java.HashCode 有 4% hashCode 的速度 应该比 CRC 快 2-3 倍 CR ...