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
DZY喜欢玩球。 他有n个球,装进一个大盒子里。每个球上面都写着一个整数。 有一天他打算从盒子中挑两个球出来。他先均匀随机地从盒子中挑出一个球,记为A。他不把A放回盒子,然后再从盒子中均匀随机地挑出一个球,记为B。 如果A上的数字严格大于B上的数字,那么他就会感到愉悦。 现在告诉你每个球上的数字,请你求出他感到愉悦的概率是多少。
第一行t,表示有t组数据。 接下来t组数据。每组数据中,第一行包含一个整数n,第二行包含n个用空格隔开的正整数ai,表示球上的数字。 (1≤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
DZY喜欢拆分数字。他想知道能否把n拆成恰好k个不重复的正整数之和。 思考了一会儿之后他发现这个题太简单,于是他想要最大化这k个正整数的乘积。你能帮帮他吗? 由于答案可能很大,请模109+7输出。
第一行t,表示有t组数据。 接下来t组数据。每组数据包含一行两个正整数n,k。 (1≤t≤50,2≤n,k≤109)
对于每个数据,如果不存在拆分方案,输出−1;否则输出最大乘积模109+7之后的值。
4 3 4 3 2 9 3 666666 2
-1 2 24 110888111
第一组数据没有合法拆分方案。 第二组数据方案为3=1+2,答案为1×2=2 第三组数据方案为9=2+3+4,答案为2×3×4=24。注意9=3+3+3是不合法的拆分方案,因为其中包含了重复数字。 第四组数据方案为666666=333332+333334,答案为333332×333334=111110888888。注意要对109+7取模后输出,即110888111。
- #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率极低... 在网上几乎找不到解题代码...(心痛)
作者首次尝试使用GitHub,并分享了对平台的初步印象。此外,还详细解析了两道编程竞赛题目,包括求解概率问题及数字拆分问题。

被折叠的 条评论
为什么被折叠?



