HDU4611+数学

本文介绍了一个算法问题,即计算从0到N-1范围内所有数的绝对值之和,其中涉及到了数学运算、循环和条件判断等编程概念,并提供了一种高效解决此问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 /*
 2 找规律
 3 题意:abs(i%A - i%B) 对i从0~N-1求和
 4 从0~N-1一个一个算必TLE,着A,B两者差相同的部分合并起来算
 5 */
 6 #include<stdio.h>
 7 #include<string.h>
 8 #include<stdlib.h>
 9 #include<algorithm>
10 #include<iostream>
11 #include<queue>
12 #include<map>
13 #include<math.h>
14 using namespace std;
15 typedef long long int64;
16 //typedef __int64 int64;
17 const int maxn = 105;
18 const int inf = 0x7fffffff;
19 const double pi=acos(-1.0);
20 const double eps = 1e-8;
21 
22 int64 gcd( int64 a,int64 b ){
23     int64 r;
24     while( b ){
25         r = a%b;
26         a = b;
27         b = r;
28     }
29     return a;
30 }
31 
32 int64 lcm( int64 a,int64 b,int64 Gcd ){
33     return a*b/Gcd;
34 }
35 
36 int64 Abs( int64 a ){
37     if( a<0 ) return -a;
38     else return a;
39 }
40 
41 int64 solve( int64 n,int64 a,int64 b ){
42     int64 Index,tmpLen,res,Indexa,Indexb;
43     res = Index = Indexa = Indexb = 0;
44     while( Index<n ){
45         tmpLen = min( a-Indexa,b-Indexb );
46         if( Index+tmpLen>n ) tmpLen = n-Index;//Index:表示新的开始分割的位置
47         res += tmpLen*Abs( Indexa-Indexb );
48         Indexa += tmpLen, Indexa %= a;
49         Indexb += tmpLen, Indexb %= b;
50         Index += tmpLen;
51     }
52     return res;    
53 }        
54 
55 int main(){
56     int T;
57     scanf("%d",&T);
58     while( T-- ){
59         int64 n,a,b;
60         //scanf("%lld%lld%lld",&n,&a,&b);
61         scanf("%I64d%I64d%I64d",&n,&a,&b);
62         int64 LCM = lcm( a,b,gcd(a,b) );
63         int64 ans = 0;
64         if( LCM>=n ) ans = solve( n,a,b );
65         else ans = (n/LCM)*solve( LCM,a,b )+solve( n%LCM,a,b );
66         //printf("%lld\n",ans);
67         printf("%I64d\n",ans);
68     }
69     return 0;
70 }
View Code

 

转载于:https://www.cnblogs.com/xxx0624/p/3251909.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值