round

C# Mathf.Round() 四舍五入

匿名 (未验证) 提交于 2019-12-03 00:37:01
程序 != 数学 到今天才对这个不等式产生了深刻的认识,坑坏了 直入正题: Mathf.Round(10.4); // 10 Mathf.Round(10.5); // 10 Mathf.Round(11.5); // 12 Mathf.Round(11.7); // 12 看了之后万分懵逼,第二行咋就是10了呢,事实就是这样。这就是编程的精髓之处 坑。 四舍五入时,如果小数位是5,那么编译器会自动识别这个小数的前后两个整数。在这里数是10.5那么他的前后两数就是10和11,而10是偶数,因此它的打印值就是10. 对的,没错。这里编译器会识别他的前后数,而他的最终答案就是那个偶数。(注意,这只在小数是5的时候,其他情况下就是正常的小学数学的四舍五入了哈)。 文章来源: C# Mathf.Round() 四舍五入

Codeforces Round #485 (Div. 2) - F - AND Graph

匿名 (未验证) 提交于 2019-12-03 00:22:01
传送门: 点击打开链接 题意:给n和m,还有m个互不相同的数,均小于1<<n,如果m个数字中a & b = 0,那么a 和b有边相连,问有多少个连通分量。 分析:把每个数看做一个01集合,对于在m个数中的数,求它的补集的子集个数即可这里用4位来举个例子,比如5(0101),补集:(1010),补集的子集:(1010) (1000) (0010) (0000)补集的子集和该集合的&运算的结果为0,满足条件。那么就可以枚举0 - ((1<<n) - 1)进行DFS即可。每次找到所有联通的点。时间复杂度O(1<<n)。注意反码和按位取反的区别。反码不需要对符号位取反,按位取反是对所有位取反。计算机内部在做数学运算时(也就是计算机的0和1的运算),都是以补码为标准的,说白了 计算机中就一种码那就是补码,而现实社会中的编码规则,例如原码、反码都是我们自定义的,为了和计算机中的补码形成转换关系。 代码: #include < bits / stdc ++. h > using namespace std ; int n , m , vis [ 1 << 23 ], ct [ 1 << 23 ]; void dfs ( int x ) { if ( vis [ x ]) return ; vis [ x ]= 1 ; for ( int i = 0 ; i < n ; i ++) if ( x

【AELF开发者社区任务活动】c#任务-使用TestKit AEDPoS扩展 #1915 重构投票合约的测试用例

匿名 (未验证) 提交于 2019-12-02 23:51:01
任务名称: 使用TestKit AEDPoS扩展 #1915 重构投票合约的测试用例 难度: 难度系数相对较大,一个测试工程师一天的任务量 奖励: 1122个ELF (或者等值1000人民币) 附上issue详情和教程,如下: ① issue介绍: https://github.com/AElfProject/AElf/issues/1915 ② AElf的issue解决方案-中文社区教程: https://github.com/AElfProject/AElf/issues/1846 如有兴趣,可以在issue上直接跟技术团队沟通。或者直接加入开发者社区QQ群:群号:102857654 任务说明: 这个任务是基于分支refactor/vote-contract-tests,所以有兴趣的人投票合同的重构测试用例需要从签他支dev到refactor/vote-contract-tests。(或者根据此分支在您自己的仓库上创建一个新分支。) 检查项目test/AElf.Contracts.AEDPoSExtension.Demo.Tests基本知道如何使用TestKit AEDPoS扩展。 测试用例DemoTest(如下图所示)显示了区块链系统的工作原理:选择一些事务然后将它们打包到一个块,每个新块都基于前一个块。 通过使用XXStub,您可以像调用

Codeforces Round #553 (Div. 2) D

匿名 (未验证) 提交于 2019-12-02 23:32:01
贪心,按ab差值排序 #include < bits / stdc ++. h > using namespace std ; typedef long long ll ; struct node { ll a , b ; } d [ 100005 ]; bool cmp ( node A , node B ) { return ( A . a - A . b )>( B . a - B . b ); } int main () { int n ; cin >> n ; for ( int i = 0 ; i < n ; i ++) { scanf ( "%lld%lld" ,& d [ i ]. a ,& d [ i ]. b ); } sort ( d , d + n , cmp ); ll ans = 0 ; for ( int i = 0 ; i < n ; i ++) { ans +=( d [ i ]. a * i + d [ i ]. b *( n - i - 1 )); } cout << ans << endl ; return 0 ; } 转载请标明出处: Codeforces Round #553 (Div. 2) D 文章来源: https://blog.csdn.net/wzazzy/article/details/89679771

Educational Codeforces Round 63 (Rated for Div. 2) D

匿名 (未验证) 提交于 2019-12-02 23:30:02
dp[i][0] 表示之前不选的最大值,dp[i][1]表示选这个的最大值,dp[i][2]表示现在以后不选的最大值 #include < bits / stdc ++. h > using namespace std ; typedef long long ll ; const int maxn = 3e5 + 10 ; ll a [ maxn ], dp [ maxn ][ 5 ]; int n , x ; ll ans ; int main () { scanf ( "%d%d" ,& n ,& x ); for ( int i = 1 ; i <= n ; i ++) scanf ( "%lld" , & a [ i ]); for ( int i = 1 ; i <= n ; i ++) { dp [ i ][ 0 ] = max ( dp [ i - 1 ][ 0 ] + a [ i ], a [ i ]); dp [ i ][ 1 ] = max ( dp [ i - 1 ][ 1 ] + a [ i ] * x , max ( dp [ i - 1 ][ 0 ]+ a [ i ]* x , a [ i ]* x )); dp [ i ][ 2 ] = max ( dp [ i - 1 ][ 2 ] + a [ i ], max ( dp [ i - 1 ][ 1 ]

Codeforces Round #547 (Div. 3):F. Same Sum Blocks

匿名 (未验证) 提交于 2019-12-02 23:26:52
题目链接(hard版): F2. Same Sum Blocks (Hard) 题目大意:给你一个序列,让你再其中选出若干个子区间(l1,r1),(l2,r2),…,(lk,rk),且子区间没有交集,每个子区间的权值和相等。问取出最多区间的方案,即最多有几个区间满足上述题意,并输出每个区间的 . 注意easy版和hard版区别仅限于序列中元素个数的不同,easy版n<50,hard版n<1500. 思路:拿到这道题先想着把easy版做了再说,想到的是暴力(结果没想到竟然也是hard版的正解)。具体如下: 因为n并不大,其子序列所组合的所有值最多 个,但每个值会很大,所以考虑离散化处理,想到map容器,然后我们考虑对每一个值映射一个vector来储存它的每组 。然后遍历每个键值,对其所映射的vector按右端点从小到大排序,依次取出每组合法 ,维护答案的最大值和其vector所对应的键值或者地址(便于后续打印答案,要不然存成 个数组会mle) 代码: #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <vector> #include <map> #include <set> #include <queue> typedef long long ll;

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) B. Weakened Common Divis

匿名 (未验证) 提交于 2019-12-02 23:26:52
题目链接 让你找一个数,使得这个数,可以被每个二元组的两个数中的一个数整除。 先将第一个二元组的两个数质因数分解一下,分解的质数加入set中,然后,对剩下的n-1个二元组进行遍历,每次遍历到的二元组对s中的质数进行判断是否能整除。如果某个质数可以被n-1个二元组整除(两个数中的一个)。 好浅显的思路,,,可是我就是没想到,,,哭辽,xyqnb mdhnb fyznb %大佬 # include < bits / stdc ++. h > # define LL long long # define fi first # define se second # define mp make_pair # define pb push_back using namespace std ; LL gcd ( LL a , LL b ) { return b ? gcd ( b , a % b ) : a ; } LL lcm ( LL a , LL b ) { return a / gcd ( a , b ) * b ; } LL powmod ( LL a , LL b , LL MOD ) { LL ans = 1 ; while ( b ) { if ( b % 2 ) ans = ans * a % MOD ; a = a * a % MOD ; b / = 2 ; }

Oracle中trunc函数、round 函数、ceil函数和floor函数的使用

微笑、不失礼 提交于 2019-12-02 23:19:45
1.1trunc函数处理数字 trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。 其具体的语法格式如下 TRUNC(number[,decimals]) 其中: number 待做截取处理的数值 decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。 ? 1 2 3 selecttrunc(123.98) from dual; selecttrunc(123.123,2) from dual; selecttrunc(123.123,-1) from dual; 注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推;如果所设置的参数为负数,且负数的位数大于或等于整数的字节数的话,则返回为0。如:TRUNC(89.985,-3)=0。 1.2trunc函数处理日期 trunc函数返回以指定元元素格式截去一部分的日期值。 其具体的语法格式如下: TRUNC(date,[fmt]) 其中: date为必要参数,是输入的一个日期值 fmt参数可忽略,是日期格式,用以指定的元素格式来截去输入的日期值。忽略它则由最近的日期截去 下面是该函数的使用情况: ? 1 2 3 4 5 6

Matlab round函数

依然范特西╮ 提交于 2019-12-02 23:18:42
Matlab round函数 没有看到太详细的介绍就自己写一个吧。 命令行窗口输入 help round可以得到官方的说明,加了一些中文,如下: 再看一些例子: 没有小数significant(有效数字)之后是科学计数法,有小数significant之后只是去掉了小数。 如果是大量的数据处理保留有效数字不确定的话还是要先试一下再处理吧。 来源: CSDN 作者: weixin_43698285 链接: https://blog.csdn.net/weixin_43698285/article/details/88092974

【C】round 函数实现方法。

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-02 23:13:58
#include <math.h> static double round(double r) { return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5); } 包含头文件,然后定义函数。。 来源: CSDN 作者: 华夏文明,永续前进,进化不止,飞升无限! 链接: https://blog.csdn.net/shen_wei/article/details/81068601