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 ...
随机推荐
- java 学习第一步---安装JDK以及配置环境变量
1.下载jdk 链接:https://pan.baidu.com/s/1FiTGhxdHK0KTFawdkLT26g 提取码:zcy0 我已经在官网上面下载了1.8的jdk,通过百度云盘分 ...
- SRM598 Div1
这次直接进到div1里面搞了,不过div1果然难度要高一些 第一题直接贪心算法了... 先排序,然后判断是否三个小于100,然后2个,最后一个 第二题看错了输入数据,理解错了题意,失误 第三题比较难办 ...
- Java日期推迟计算、日期大小
/** * 日期推迟计算 * @param date * @param num * @return java.util.HashMap<java.lang.String,java.lang.St ...
- Code First: 五大映射模式
映射一 Mapping the Table-Per-Hierarchy (TPH) Inheritance 模型文件 using System.Data.Entity; using System.Da ...
- Python基础Web服务器案例
一.WSGI 1.PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI) 是Python应用程序或框架和Web服务器之间的一种接口, ...
- 全分布式的Hadoop虚拟机安装
在集群环境下装机.配置.运行的全过程,梳理总结到本文中. 第一部分:环境规划 •用户 hadoop 密码 hadoop •机器 机器名称 IP地址 Master.Hadoop 192.168.1.10 ...
- Nginx配置try_files实践一
参考资料: http://linuxplayer.org/2013/06/nginx-try-files-on-multiple-named-location-or-serverhttp://stac ...
- markdown 常用语法总结 - 个人版
这里并不是要总结所有的 markdown 语法,只是总结笔者自己撰写博客时常用的一些 markdown 语法. 1 图片设置 1.1 设置图片位置 利用markdown在编写文档时插入图片是默认靠左, ...
- [NOI2004]cashier 郁闷的出纳员
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...
- MyEclipse日志文件目录
MyEclipse存放日志的目录为: <Workspace_Root>/.metadata/.log 在该目录下存放了日志的存档和当前日志,通过该日志可以查看MyEclipse的错误信息.