A . 问一组数能否全部被3整除

K. S1 = A, S2 = B, Si = |Si-1  -  Si-2|; 一直循环问, 出现了多少不同的数;

多模拟几组数, 可以发现和辗转相除法有很大关系

#include<bits/stdc++.h>

using namespace std;
#define ll long long ll gcd(ll a, ll b)
{
ll cnt = ; // 一开始写的是 int wa 了很多次, 难受
if(b == )return ;
cnt += a/b;
cnt += gcd(b, a%b);
return cnt; } int main()
{
int T;
cin >> T;
int j = ;
while(j++ < T)
{
ll a,b;
cin >> a >> b;
ll ans ;
if(a==&&b==) {ans = ;printf("Case #%d: %lld\n",j,ans);continue;}
if((a==&&b!=)||(a!=&&b==)) {ans = ;printf("Case #%d: %lld\n",j,ans);continue;}
if(a < b) swap(a, b);
ans = gcd(a,b);
printf("Case #%d: %lld\n",j, ans);
}
}

F. 给你n朵花, m种颜色, 给花染色,要求正好用到K种颜色,并且相邻的花不能是相同的颜色

写的很详细 : https://blog.csdn.net/qingshui23/article/details/51125323

首先从m种颜色种选取k种颜色的方案为C(m,k),对于不超过的k种颜色的方案数很好求,为k*(k - 1)^(n - 1),第一个物品有k种选择,之后的n-1个物品因为不能和前

面的相同,故都只有n-1种可能,但是题目要求的是恰好为k种的方案数,因此要容斥一下,容斥可以这样理解,假设不超过i种的方案数为F[i],那么其中包括了不超

过i-1种的,不超过i-1种的里面又包含了不超过i-2种的,以此类推得到ans = F[k] - (F[k - 1] - (F[k - 2] - (... - (F[3] - F[2])))) = F[k] - F[k - 1] + F[k - 2] - ... + (-1)^(k - i)F[i]

因此最后答案为C(m,k)(Σ(-1)^(k - i)F[i]),其中F[i] = C(k,i)i*(i-1)^(n-1)

#include<bits/stdc++.h>
#define ull unsigned long long
#define ll long long
const int mod =;
using namespace std;
const int maxn=1e6+; int t;
ll n,m,k;
ll exgcd(ll a,ll b,ll &x,ll &y)
{
if(b==)
{
x=,y=;
return a;
}
else
{
ll q=exgcd(b,a%b,y,x);
y=y-x*(a/b);
return q;
}
}
ll niyuan(ll a,ll n)//逆元
{
ll x,y;
ll d=exgcd(a,n,x,y);
if(d==)
return (x%n+n)%n;
else
return -;
}
ll qmod(ll n,ll m,ll mod)//快速幂
{
ll ans=;
while(m)
{
if(m&)ans=(ans*n)%mod;
n=(n*n)%mod;
m>>=;
}
return ans%mod;
}
ll cm[maxn],ck[maxn],inv[maxn];
void get_inv()//打表
{
for(int i=;i<maxn;i++)
inv[i]=niyuan(i,mod);
}
void init()//打表
{
cm[]=,ck[]=;
for(int i=;i<=k;i++)
{
cm[i]=((cm[i-]%mod*(m-i+)%mod)*inv[i])%mod;
ck[i]=((ck[i-]%mod*(k-i+)%mod)*inv[i])%mod;
}
}
int main()
{ get_inv();
scanf("%d",&t);
int ca=;
while(t--)
{
scanf("%lld%lld%lld",&n,&m,&k);
init();
ll ret;
ll ans=;
for(ll i=k; i>=; i--)
{
if((k-i)%)
ret=-;
else
ret=;
ans=(ans+ret*i%mod*ck[i]%mod*qmod(i-,n-,mod)%mod+mod)%mod;
//二项式反演 }
ans=(ans*cm[k])%mod; printf("Case #%d: %lld\n",ca++,ans); }
}

2014年西安区域赛的几道水题(A. F. K)的更多相关文章

  1. 2017西安区域赛A / UVALive - 8512 线段树维护线性基合并

    题意:给定\(a[1...n]\),\(Q\)次询问求\(A[L...R]\)的异或组合再或上\(K\)的最大值 本题是2017的西安区域赛A题,了解线性基之后你会发现这根本就是套路题.. 只要用线段 ...

  2. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  3. 2014年亚洲区域赛北京赛区现场赛A,D,H,I,K题解(hdu5112,5115,5119,5220,5122)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 下午在HDU上打了一下今年北京区域赛的重现,过了5题,看来单挑只能拿拿铜牌,呜呜. ...

  4. hdu 5078 Osu! (2014 acm 亚洲区域赛鞍山 I)

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5078 Osu! Time Limit: 2000/1000 MS (Java/Others)     ...

  5. zoj 3829 Known Notation(2014在牡丹江区域赛k称号)

    Known Notation Time Limit: 2 Seconds      Memory Limit: 131072 KB Do you know reverse Polish notatio ...

  6. UVALive 8519 Arrangement for Contests 2017西安区域赛H 贪心+线段树优化

    题意 等价于给一个数列,每次对一个长度为$K$的连续区间减一 为最多操作多少次 题解: 看样例猜的贪心,10分钟敲了个线段树就交了... 从1开始,找$[i,i+K]$区间的最小值,然后区间减去最小值 ...

  7. UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset

    UVALive 8513 有2种人,每个人有自己的权值$A_i$ $B_i$ 当$A_i + B_i >=K$时 两个人可以配对 问最多多少人可以配对 解法 : 把$/{ A_i /}$ 排序 ...

  8. 14西安区域赛C - The Problem Needs 3D Arrays

    最大密度子图裸题,详情请见胡博涛论文: https://wenku.baidu.com/view/986baf00b52acfc789ebc9a9.html 不加当前弧优化t到死= = //#prag ...

  9. 2017 ICPC西安区域赛 A - XOR (线段树并线性基)

    链接:https://nanti.jisuanke.com/t/A1607 题面:   Consider an array AA with n elements . Each of its eleme ...

随机推荐

  1. MyBatis总结五:#{}和${}的用法和区别

    From: https://www.cnblogs.com/blazeZzz/p/9295634.html #{}的用法: 我们发现,在Mapper.xml映射文件中,经常使用#{属性名} 来作为SQ ...

  2. 深度学习中交叉熵和KL散度和最大似然估计之间的关系

    机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...

  3. Essay3.0发布,基于JavaScript的前后端同构博客系统

    前言 转眼间距离我开源这个项目已经两年了,最初是奔着学习的目的开发了这个项目,后来一直记录自己的学习笔记.随着时间的增长,发现之前写的代码简直不忍直视,于是就有了重构的想法.这个过程有些漫长,竟然用了 ...

  4. 【Zookeeper系列】构建ZooKeeper应用(转)

    原文地址:https://www.cnblogs.com/sunddenly/p/4064992.html 一.配置服务 配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那 ...

  5. [原]Jenkins(十七) jenkins再出发之配置SVN

    创建一个demo project 配置SVN: 配置build project

  6. 解决JS(Vue)input[type='file'] change事件无法上传相同文件的问题

    Html <input id="file" type="file" accept=".map" onchange="uplo ...

  7. GO语言-基础语法:条件判断

    1. IF判断(aa.txt内容:asdfgh.bb.txt内容:12345) package main import ( "io/ioutil" "fmt" ...

  8. 【Java线程安全】 — 常用数据结构及原理(未完结)

    本文主要记录自己对于多线程安全的学习,先来记几个线程安全模型. 首先最重要的当然是volatile和AQS了: 我们知道,整个java.cuncurrent包的核心就是volatile,CAS加自旋悲 ...

  9. 参看gitlab版本号

    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

  10. Spring-Boot构建多模块项目

    Spring-Boot构建多模块项目 功能模块单独项目开发,可以将一个庞大的项目分解成多个小项目,便于细分开发 Maven多模块项目不能独立存在,必须有一个介质来包含. 1.创建一个Maven 项目, ...