avatar-decorate
煎饼果子w level
获赞
64
粉丝
12
关注
4
看过 TA
53
卡内基·梅隆大学
2022
Java
IP属地:江西
暂未填写个人简介
私信
关注
头像
2021-04-16 17:35
已编辑
卡内基·梅隆大学 Java
一共3道编程题 第一题:足球赛得分 题目描述: 有一场双循环赛制(每个队都要主动和其他所有队打一次)的足球赛,胜、负、平分别得3、0、1分,现在给你一场球赛的比分表,需要你按照积分高低输出排名,积分相同的就按队伍名字排序。球队最多26个,球队名称范围为a-z。 输入输出样例: Input: (计分板)a-b 3:0a-c 2:1b-a 1:1c-a 0:1b-c 4:3c-b 2:2Output:a 10,b 5,c 1 a总共赢3场、平1场,积3*3+1=10分,b总共赢1场、平2场、负1场,积3+2*1+0=5分,c总共赢0场、平1场、负3场,积1+0=1分, 解法: 这里处理输入是一...
牛客549486156号:def solution(): string = input("") pattern = input("") start = int(input("")) m,n = len(string),len(pattern) locations = defaultdict(Letter) if string[start] == pattern[0]: pattern = pattern[1:] #一开始就匹配成功这种情况纯粹是捣乱的,会导致后边使用bisect_right错误,也就是需要考虑当前的p的位置也算数,但是除了第一个点,当前位置的p都是上一次的结果,所以不算数 ans = -start
投递华为等公司10个岗位 >
0 点赞 评论 收藏
分享
头像
2021-03-16 09:27
已编辑
卡内基·梅隆大学 Java
第一题:翻转数字 给你三个数a,b,c,可以对a或b进行多次翻转,[一次翻转的意思是取一位二进制进行翻转(比如0->1,或者1->0)],现在问你最少需要多少次翻转可以使得翻转后的a|b=c。 这道题在leetcode上有,见 https://leetcode-cn.com/problems/minimum-flips-to-make-a-or-b-equal-to-c/ 这里给一下我的代码吧~ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; ...
F21H_:我事后想了一下,double被卡精度应该是过程中加到了一个比较大的数,double用了很多位去表示整数部分。办法就是利用一个long long去模拟,由于没有负数还可以是unsigned的,等于完整利用上了64位精度。具体操作就是在每次加上去前 *N,N是一个合适的较大值,最后再除掉,这样模拟了一个固定阶数的小数。代码放在下面,没有仔细调输出,并且也不能保证能ac,毕竟我没办法再测试了。另一种思路就是每次都将整数部分提取出来放到一个int里,这样double可以完整保留小数部分的精度。 #include<bits/stdc++.h> using namespace std; unsigned long long N=10000000000; unsigned long long M=N/10000; int main() { int n=10000; unsigned long long sum=0; if(n==1){ printf("1.0000\n"); return 0; } for(int i=1; i<=n-1; i++){ int j=n-i; if(abs(i-j)<2){ sum = sum + N*max(i,j); }else{ sum = sum + N*min(i,j); int k=abs(i-j); unsigned long long temp=0; for(int t=1; t<=k-1; t++){ temp = temp + N*max(t, k-t); } sum = sum + temp/(k-1); } } unsigned long long res = sum/(n-1); double ret = res/N + res%N/M; if(res%N/M==0) printf("%.4lf\n", ret); else printf("%d.%d\n", res/N, res%N/M); }
投递阿里巴巴等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务