[20160320] 刚刚会用的GitHub / WarTime-Project On GitHub / BestCoder Round #76
2016-03-20 09:47
459 查看
GitHub!我来了!!!
对大名鼎鼎的GitHub早有耳闻,但是一直没时间,也主要是没那个需求,所以就一直没去学。昨天经过各种搜索学会了最基本的使用方法。其实要不是最近走路的时间多了估计我也不会这么积极的学Git...
于是我Sign in了许久之前注册的账号,逛了一圈还发现了AlphaGO的代码(惊),https://github.com/alphagov/whitehall,貌似很高大上= = 小心地fork了一下看看...好吧,不是很懂...
在建立了一个练手的项目之后,熟悉了大部分用法,于是删掉了这个临时的项目,不过在PublicActivity里面居然还能看见...
于是!我把从前在各种平台上都没能进行的项目企划: WarTime-Project 搬到了GitHub上来。和我一起完成这个项目的还有几个C++/Java初学者,大家在一起,也算互相学习了。
WarTime-Project On GitHub 地址:https://github.com/Kiritow/WarTime-Project,欢迎前来监督项目进程,欢迎Fork~
BestCoder Round #76
昨晚上的BC据说是“世界上最强大的国家”出的题目,然而并没有什么卵用...
只做出了一道题,剩下的一个多小时一直在想最后一道题(1004),但是一直超时后来也不是特别明白...
DZY Loves Balls
Accepts: 659Submissions: 1393
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
DZY喜欢玩球。 他有nn个球,装进一个大盒子里。每个球上面都写着一个整数。 有一天他打算从盒子中挑两个球出来。他先均匀随机地从盒子中挑出一个球,记为AA。他不把AA放回盒子,然后再从盒子中均匀随机地挑出一个球,记为BB。 如果AA上的数字严格大于BB上的数字,那么他就会感到愉悦。 现在告诉你每个球上的数字,请你求出他感到愉悦的概率是多少。
输入描述
第一行tt,表示有tt组数据。 接下来tt组数据。每组数据中,第一行包含一个整数nn,第二行包含nn个用空格隔开的正整数a_iai,表示球上的数字。 (1\le t\le 300, 2\le n \le 300,1\le a_i \le 3001≤t≤300,2≤n≤300,1≤ai≤300)
输出描述
对于每个数据,输出一个实数答案,保留6位小数。
输入样例
2 3 1 2 3 3 100 100 100
输出样例
0.500000 0.000000
#include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int data[400]; int main() { int t; scanf("%d",&t); for(int turn=0;turn<t;turn++) { int n; scanf("%d",&n); memset(data,0,sizeof(int)*400); int tmp; for(int i=0;i<n;i++) { scanf("%d",&tmp); data[tmp]++; } int cnt=0; for(int i=0;i<400;i++) { if(data[i]>0) { int ans=0; for(int j=0;j<i;j++) { if(data[j]>0) ans+=data[j]; } cnt+=ans*data[i]; } } printf("%.6f\n",(double)cnt/(n*(n-1))); } return 0; }
至于1002在网上找到了一个代码...
题目如下:
DZY Loves Partition
Accepts: 154Submissions: 843
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
DZY喜欢拆分数字。他想知道能否把nn拆成恰好kk个不重复的正整数之和。 思考了一会儿之后他发现这个题太简单,于是他想要最大化这kk个正整数的乘积。你能帮帮他吗? 由于答案可能很大,请模10^9+7109+7输出。
输入描述
第一行tt,表示有tt组数据。 接下来tt组数据。每组数据包含一行两个正整数n,kn,k。 (1\le t\le 50, 2\le n,k \le 10^91≤t≤50,2≤n,k≤109)
输出描述
对于每个数据,如果不存在拆分方案,输出-1−1;否则输出最大乘积模10^9 + 7109+7之后的值。
输入样例
4 3 4 3 2 9 3 666666 2
输出样例
-1 2 24 110888111
Hint
第一组数据没有合法拆分方案。 第二组数据方案为3=1+23=1+2,答案为1\times 2 = 21×2=2 第三组数据方案为9=2+3+49=2+3+4,答案为2\times 3 \times 4 = 242×3×4=24。注意9=3+3+39=3+3+3是不合法的拆分方案,因为其中包含了重复数字。 第四组数据方案为666666=333332+333334666666=333332+333334,答案为333332\times 333334= 111110888888333332×333334=111110888888。注意要对10^9 + 7109+7取模后输出,即110888111110888111。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
const ll MOD = 1e9+7;
const int maxn = 2000100;
ll t,n,k;
int num[maxn];
int main()
{
scanf("%I64d",&t);
while(t--){
scanf("%I64d %I64d",&n,&k);
if(k*(k+1)/2 > n){
printf("-1\n");
continue;
}
n -= k*(k+1)/2;
for(int i=1;i<=k;i++){
num[i] = i;
num[i] += n/k;
}
n%=k;
for(int i=k;i>=1;i--){
if(n==0)
break;
num[i]++;
n--;
}
ll sum = 1;
for(int i=1;i<=k;i++)
sum = sum*num[i]%MOD;
printf("%I64d\n",sum);
}
return 0;
}
至于3、4题AC率极低... 在网上几乎找不到解题代码...(心痛)
相关文章推荐
- Python-面向对象
- C++类的封装与类库的组成
- java实现导出excel表格
- Spring.Net实现IOC和DI
- 面向接口编程的好处
- PHP学习笔记-PHP概述与环境搭建
- php 的设计模式
- 第二周续.(代码)
- Java设计模式 -- 抽象工厂模式
- python字符串连接超过2个,用join代替+号
- 编写C#程序,输出分数最高的同学的姓名和分数。
- java 文件操作
- 利用Eclipse/MyEclipse 实体类生成.hbm.xml文件
- java 多线程之线程的状态
- C# kinect v2学习笔记(三) 彩色图像
- Spring整合Hibernate中自动建表
- Keras - 一个基于 Theano 的深度学习 Python 库
- 《C++0x漫谈》系列之:Concept, Concept!
- PHP empty、isset、isnull的区别
- [转载] Eclipse快捷键 10个最有用的快捷键