202

1小时前
#include<iostream>
using namespace std;
int main()
{
double a;
cin>>a;
if(a>=0 && a<=400.00) printf("Novo salario: %.2lf\nReajuste ganho: %.2lf\nEm percentual: 15 %%",a*1.15,a*0.15);
if(a>=400.01 && a<=800.00) printf("Novo salario: %.2lf\nReajuste ganho: %.2lf\nEm percentual: 12 %%",a*1.12,a*0.12);
if(a>=800.01 && a<=1200.00) printf("Novo salario: %.2lf\nReajuste ganho: %.2lf\nEm percentual: 10 %%",a*1.10,a*0.10);
if(a>=1200.01 && a<=2000.00) printf("Novo salario: %.2lf\nReajuste ganho: %.2lf\nEm percentual: 7 %%",a*1.07,a*0.07);
if(a>2000.00) printf("Novo salario: %.2lf\nReajuste ganho: %.2lf\nEm percentual: 4 %%",a*1.04,a*0.04);
return 0;
}


2小时前
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
if(a==b) printf("O JOGO DUROU 24 HORA(S)");
else if(a<b) printf("O JOGO DUROU %d HORA(S)",b-a);
else printf("O JOGO DUROU %d HORA(S)",24-a+b);
return 0;
}


2小时前
#include<iostream>
using namespace std;
int main()
{
double a,b,c;
cin>>a>>b>>c;
if(a+b>c && b+c>a && a+c>b) printf("Perimetro = %.1lf",a+b+c);
else printf("Area = %.1lf",(a+b)*c/2.0);
return 0;
}


1天前
#include <iostream>
using namespace std;
int main()
{
float f;
cin>>f;
if(f>=0 && f<=25) cout<<"Intervalo [0,25]";
else if(f>25 && f<=50) cout<<"Intervalo (25,50]";
else if(f>50 && f<=75) cout<<"Intervalo (50,75]";
else if(f>75 && f<=100) cout<<"Intervalo (75,100]";
else cout<<"Fora de intervalo";
return 0;
}


1天前
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int x,y;
cin>>x>>y;
if(x==1) printf("Total: R$%.2f",4.0*y); else if(x==2) printf("Total: R$ %.2f",4.5*y);
else if(x==3) printf("Total: R$%.2f",5.0*y); else if(x==4) printf("Total: R$ %.2f",2.0*y);
else if(x==5) printf("Total: R\$ %.2f",1.5*y);
return 0;
}


1天前
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
if(a%b==0||b%a==0)
{
cout<<"Sao Multiplos"<<endl;
}
else
{
cout<<"Nao sao Multiplos"<<endl;
}
return 0;
}


1天前
#include <bits/stdc++.h>

using namespace std;

// Catalan Number
// 卡特兰数
// 超棒的讲解
// https://www.bilibili.com/video/BV1nE411A7ST?from=search&seid=2618099886973795159

typedef long long LL;
const int N = 100010, mod = 1e9 + 7;
//快速幂，用来求逆元，使用费马小定理，因为p是质数，如果不是质数，需要用扩展欧几里得算法来求
int qmi(int a, int k, int p) {
int res = 1;
while (k) {
if (k & 1) res = (LL) res * a % p;
a = (LL) a * a % p;
k >>= 1;
}
return res;
}

int main() {
//输入+输出重定向
// freopen("../AcWing/N12/889.txt", "r", stdin);

int n;
cin >> n;

// 从公式中获取卡特兰数，这里yxc是用的组合公式来取的卡特兰数 C(N,2N)=
// https://www.cnblogs.com/moyujiang/p/11230529.html
// https://www.luogu.com.cn/blog/liaoyuan51576/dd-1044
/*
1.  h(n)=C(2n,n)/n+1
2.  h(n)=C(2n,n)-C(2n,n+1)
*/
int a = n * 2, b = n;
int res = 1;
for (int i = a; i > a - b; i -- ) res = (LL)res * i % mod;
for (int i = 1; i <= b; i ++ ) res = (LL)res * qmi(i, mod - 2, mod) % mod; //i的逆元
res = (LL)res * qmi(n + 1, mod - 2, mod) % mod; //n+1的逆元

cout << res << endl;
//关闭文件
//   fclose(stdin);
return 0;
}


1天前
#include <bits/stdc++.h>

using namespace std;
const int N = 5010;

int primes[N], cnt;
int sum[N]; //每一个质数的次数
bool st[N];

//筛素数
void get_primes(int n) {
for (int i = 2; i <= n; i++) {
if (!st[i]) primes[cnt++] = i;
for (int j = 0; primes[j] <= n / i; j++) {
st[primes[j] * i] = true;
if (i % primes[j] == 0) break;
}
}
}

//高精度乘法
vector<int> mul(vector<int> a, int b) {
vector<int> c;
int t = 0;
for (int i = 0; i < a.size(); i++) {
t += a[i] * b;
c.push_back(t % 10);
t /= 10;
}
while (t) {
c.push_back(t % 10);
t /= 10;
}
return c;
}

//n的阶乘中包含的质因子p的个数
//https://blog.csdn.net/spidy_harker/article/details/88414504
int get(int n, int p) {
int res = 0;
while (n) {
res += n / p;
n /= p;
}
return res;
}

int main() {
//输入+输出重定向
freopen("../AcWing/N12/888.txt", "r", stdin);
int a, b;
cin >> a >> b;

//筛2-a之间素数
get_primes(a);

//每个质数的次数
for (int i = 0; i < cnt; i++) {
int p = primes[i]; //当前质数
//a阶乘中有多少个质数因子p,减去a-b的多少个质数因子p,再减去b的质数因子p的个数，就是总个数
sum[i] = get(a, p) - get(a - b, p) - get(b, p);
}

//利用高精度，把质数因子乘到一起，就是结果了
vector<int> res;
res.push_back(1);

for (int i = 0; i < cnt; i++)
for (int j = 0; j < sum[i]; j++)
res = mul(res, primes[i]);

//输出答案
for (int i = res.size() - 1; i >= 0; i--) printf("%d", res[i]);
puts("");

//关闭文件
fclose(stdin);
return 0;
}


1天前
#include <bits/stdc++.h>

using namespace std;
typedef long long LL;

int qmi(int a, int k, int p) {
int res = 1;
while (k) {
if (k & 1) res = (LL) res * a % p;
a = (LL) a * a % p;
k >>= 1;
}
return res;
}

int C(int a, int b, int p) {
if (b > a) return 0;
int res = 1;
for (int i = 1, j = a; i <= b; i++, j--) {
res = (LL) res * j % p;
res = (LL) res * qmi(i, p - 2, p) % p;
}
return res;
}

int lucas(LL a, LL b, int p) {
if (a < p && b < p) return C(a, b, p);
return (LL) C(a % p, b % p, p) * lucas(a / p, b / p, p) % p;
}

int main() {
//输入+输出重定向
// freopen("../AcWing/N12/887.txt", "r", stdin);

int n;
cin >> n;

while (n--) {
LL a, b;
int p;
cin >> a >> b >> p;
cout << lucas(a, b, p) << endl;
}

//关闭文件
// fclose(stdin);
return 0;
}


2天前
#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
const int N = 100010, mod = 1e9 + 7;

int fact[N], infact[N];

//快速幂
int qmi(int a, int k, int p) {
int res = 1;
while (k) {
if (k & 1) res = (LL) res * a % p;
a = (LL) a * a % p;
k >>= 1;
}
return res;
}

int main() {
//输入+输出重定向
//freopen("../AcWing/N12/886.txt", "r", stdin);

//这道题与上一道题的差别在于数据范围，1万组，但1<=b<=a<=100000 ,这个a和b太大，需要预处理,因为10^5 * 10^5 就太大了，无法声明了
//,直接报 Memory Limit Exceeded. 所以，我们直接递推求出所有解，办不到，那样的话，内存就爆了，需要找其它的方法
//学数学知识对计算机有很大好处

// 我们可以进行预处理
// fact[i]=i! mod (1e9 + 7)  把阶乘预处理到一维数组中，这样就不会内存爆掉
// 同时，因为 a/b mod p的话，不可以使用 (a mod p) / (b mod p),所以这里面需要使用逆元,提前预处理出逆元也很重要。
// infact[i] 表示的是 (i!)^-1 mod p ，其实就是 i的阶乘的逆元 mod p的值，有了它，就躲开了除法取模，成为乘法取模，也就是可以化简了。
// 所以 C(a,b)= a!/((a-b)!*b!)   ----> C(a,b) % p =(fact[a]*infact[a-b]*infact[b])%p
// 逆元是可以通过费马小定理来求，是logN的，速度很快的。
fact[0] = infact[0] = 1;
for (int i = 1; i < N; i++) {
fact[i] = (LL) fact[i - 1] * i % mod;                           //求阶乘
infact[i] = (LL) infact[i - 1] * qmi(i, mod - 2, mod) % mod;  //求逆元
}
int n;
scanf("%d", &n);
while (n--) {
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", (LL) fact[a] * infact[b] % mod * infact[a - b] % mod);
}
//关闭文件
// fclose(stdin);
return 0;
}