gym101343 2017 JUST Programming Contest 2.0
A.On The Way to Lucky Plaza (数论)
题意:m个店 每个店可以买一个小球的概率为p
求恰好在第m个店买到k个小球的概率
题解:求在前m-1个店买k-1个球再*p就好了 最开始没太懂输出什么意思
其实就是p*q的逆元的意思 因为概率是三位小数于是对他*1000*1000的逆元处理
还要加个eps 因为0.005浮点数由于不确定性可能存的0.0050001或者0.00499999
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = ; ll ny[]; ll pow_mod(ll x, ll y)
{
ll res = ;
while(y)
{
if(y & ) res = res * x % mod;
x = x * x % mod;
y >>= ;
}
return res % mod;
} int main()
{
ll n, m, k;
scanf("%lld%lld%lld", &m, &n, &k);
for(ll i = ; i <= ; i++) ny[i] = pow_mod(i, mod - 2LL); double pp;
scanf("%lf", &pp);
ll p = * pp + 1e-; ll ans = ;
for(int i = ; i <= k - ; i++) ans = ans * ny[i] % mod;
for(ll i = ; i <= k - ; i++) ans = ans * (n - i) % mod;
for(int i = ; i <= k; i++) ans = ans * p % mod;
for(int i = ; i <= n - k; i++) ans = ans * ( - p) % mod;
for(int i = ; i <= n; i++) ans = ans * ny[] % mod;
printf("%lld\n", ans);
return ;
}
B.So You Think You Can Count?(水DP)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = ; char s[];
int vis[];
ll dp[]; int main()
{
int n;
scanf("%d", &n);
scanf("%s", s + );
dp[] = ; for(int i = ; i <= n; i++)
{
memset(vis, , sizeof(vis)); for(int j = i; j >= ; j--)
{
if(vis[s[j] - '']) break;
else
{
vis[s[j] - ''] = ;
dp[i] = (dp[i] + dp[j - ]) % mod;
}
}
}
printf("%lld\n", dp[n]);
return ;
}
C.MRT Map (最短路) 不会写最短路 学姐写的
D.Husam's Bug (水题)
E.Abdalrahman Ali Bugs (水题)
F.Certifications (水题)
G.In the Chairman's office (水题)
H.Give Me This Pizza
题意:给一个数组 求每个数右边第一个比他大的数是谁
题解:ai才不到50 从后往前暴力即可 存每个数最后出现的位置
#include <bits/stdc++.h>
using namespace std; int vis[];
int q[];
int ans[]; int main()
{
int n;
scanf("%d", &n);
for(int i = ; i <= n; i++) scanf("%d", &q[i]); for(int i = ; i <= ; i++) vis[i] = ;
for(int i = ; i <= n; i++) ans[i] = ; for(int i = n; i >= ; i--)
{
vis[q[i]] = i;
int f = -;
for(int j = q[i] + ; j <= ; j++)
{
if(vis[j] < ans[i])
{
ans[i] = vis[j];
f = j;
}
}
ans[i] = f;
}
for(int i = ; i <= n; i++)
{
if(i != n) printf("%d ", ans[i]);
else printf("%d\n", ans[i]);
}
return ;
}
I.Husam and the Broken Present 1 (水题)
J.Husam and the Broken Present 2 (状压DP) 题解戳
K.Counting Time (模拟)
题意:给一个九宫格的初始状态 填完这个九宫格使得每个数字x能跳到x+1的方案有多少种
能跳到的区域为八连通 且x只能跳到x+1
题解:模拟
#include <bits/stdc++.h>
using namespace std; int nx[];
int ny[];
int vis[];
char tu[][];
int dx[];
int dy[];
int q[] = {, , , , , , , , , }; int ans;
bool check()
{
dx[q[]] = dx[q[]] = dx[q[]] = ;
dx[q[]] = dx[q[]] = dx[q[]] = ;
dx[q[]] = dx[q[]] = dx[q[]] = ;
dy[q[]] = dy[q[]] = dy[q[]] = ;
dy[q[]] = dy[q[]] = dy[q[]] = ;
dy[q[]] = dy[q[]] = dy[q[]] = ; for(int i = ; i <= ; i++)
if(vis[i])
{
if(dx[i] == nx[i] && dy[i] == ny[i]) continue;
else return false;
} for(int i = ; i <= ; i++)
{
if(abs(dx[i] - dx[i - ]) <= && abs(dy[i] - dy[i - ]) <= ) continue;
else return false;
}
return true;
} int main()
{
ans = ;
for(int i = ; i <= ; i++) scanf("%s", tu[i] + );
for(int i = ; i <= ; i++)
for(int j = ; j <= ; j++)
{
if(tu[i][j]!= '')
{
int c = tu[i][j] - '';
vis[c] = ;
nx[c] = i;
ny[c] = j;
}
} ans += check();
while(next_permutation(q + , q + )) ans += check();
printf("%d\n", ans);
return ;
}
gym101343 2017 JUST Programming Contest 2.0的更多相关文章
- 2017 JUST Programming Contest 2.0 题解
[题目链接] A - On The Way to Lucky Plaza 首先,$n>m$或$k>m$或$k>n$就无解. 设$p = \frac{A}{B}$,$ans = C_{ ...
- gym101532 2017 JUST Programming Contest 4.0
台州学院ICPC赛前训练5 人生第一次ak,而且ak得还蛮快的,感谢队友带我飞 A 直接用claris的模板啊,他模板确实比较强大,其实就是因为更新的很快 #include<bits/stdc+ ...
- 2017 JUST Programming Contest 3.0 B. Linear Algebra Test
B. Linear Algebra Test time limit per test 3.0 s memory limit per test 256 MB input standard input o ...
- 2017 JUST Programming Contest 3.0 I. Move Between Numbers
I. Move Between Numbers time limit per test 2.0 s memory limit per test 256 MB input standard input ...
- 2017 JUST Programming Contest 3.0 D. Dice Game
D. Dice Game time limit per test 1.0 s memory limit per test 256 MB input standard input output stan ...
- 2017 JUST Programming Contest 3.0 H. Eyad and Math
H. Eyad and Math time limit per test 2.0 s memory limit per test 256 MB input standard input output ...
- 2017 JUST Programming Contest 3.0 K. Malek and Summer Semester
K. Malek and Summer Semester time limit per test 1.0 s memory limit per test 256 MB input standard i ...
- 2017 JUST Programming Contest 3.0 E. The Architect Omar
E. The Architect Omar time limit per test 1.0 s memory limit per test 256 MB input standard input ou ...
- 2017 JUST Programming Contest 2.0
B. So You Think You Can Count? 设dp[i]表示以i为结尾的方案数,每个位置最多往前扫10位 #include<bits/stdc++.h> using na ...
随机推荐
- skype默认占用80和443port
今天把server的port更改为80,结果起不来,报告"port已经被占用"的错误. 使用下列命令找到了元凶: 1. netstat -ano | findstr 80 找到占用 ...
- YTU 2636: B3 指向基类的指针访问派生类的成员函数
2636: B3 指向基类的指针访问派生类的成员函数 时间限制: 1 Sec 内存限制: 128 MB 提交: 433 解决: 141 题目描述 领导类(Leader)和工程师类(Engineer ...
- MPMoviePlayerController属性方法简介
属性 说明 @property (nonatomic, copy) NSURL *contentURL 播放媒体URL,这个URL可以是本地路径,也可以是网络路径 @property (nonatom ...
- JS如何遍历一个文件夹下的所有文件与目录(转)
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- MogileFS的实现和bug解决
MogileFS的实现 准备三个主机: centos7.1:tracker节点.database节点.storage节点:192.168.213.251 centos7.2.centos7.3:sto ...
- bzoj 1034: [ZJOI2008]泡泡堂BNB【贪心】
是贪心 先把两个数组排序,然后贪心的选让a数组占优的(如果没有就算输),这是最大值,最小值是2n-贪心选b数组占优 #include<iostream> #include<cstdi ...
- 3-3 编程练习:jQuery键盘事件案例
3-3 编程练习 完善下面的代码,在input框中输入内容的时候同样显示在下面的p标签中 <!DOCTYPE html> <html lang="zh-CN"&g ...
- cookie使用详解
cookie是用来保存客户资料的好方法,与同样可以用来保存客户资料的 session不同的是,session是把资料保存在服务器端,而cookie是把资料保存在客户端,我们平常接触的最多的cookie ...
- Linq 内连接和外连接(转载)
一.内连接 Model1Container model = new Model1Container(); //内连接 var query = from s in model.Student join ...
- SQL 几个查看性能的语句
1.查找目前SQL Server所执行的SQL语法,并展示资源情况: SELECT s2.dbid , DB_NAME(s2.dbid) AS [数据库名] , --s1.sql_handle , ( ...