Codeforces Round #210

本文包含四道C++编程题目解析及代码实现,涉及数组操作、条件判断、暴力搜索与二分查找加动态规划等算法。通过这些练习题,读者可以加深对C++语法的理解,并提高算法设计能力。

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

A:简单题:

 1 #include<cstdio>
 2 using namespace std;
 3 
 4 int n,k;
 5 int main()
 6 {
 7     scanf("%d%d",&n,&k);
 8     for(int i=0; i<n; i++)
 9     {
10         for(int j=0; j<n; j++)
11         {
12             if(i==j)printf("%d ",k);
13             else printf("0 ");
14         }
15         puts("");
16     }
17     return 0;
18 }
View Code

B.简单题:

 1 #include<cstdio>
 2 using namespace std;
 3 
 4 int n,k;
 5 int main()
 6 {
 7     scanf("%d%d",&n,&k);
 8     if((n==1&&k==1)||k==n)
 9     {
10         puts("-1");
11         return 0;
12     }
13     if(k==0)
14     {
15         for(int i=1;i<n;i++)
16             printf("%d ",i+1);
17         puts("1");
18         return 0;
19     }
20     if(k==n-1)
21     {
22         for(int i=1;i<=n;i++)
23             printf("%d ",i);
24         return 0;
25     }
26     printf("%d ",k+2);
27     for(int i=2; i<=k+1; i++)
28     {
29         printf("%d ",i);
30     }
31     for(int i=k+2; i<n; i++)
32         printf("%d ",i+1);
33     printf("1");
34     return 0;
35 }
View Code

C:暴力,先从后往前搞一遍,然后从前往后检查一遍;

 1 #include<cstdio>
 2 #include<algorithm>
 3 #define maxn 5005
 4 using namespace std;
 5 
 6 int p[maxn],ans[maxn];
 7 int cmd[maxn],l[maxn],r[maxn],num[maxn];
 8 bool vis[maxn],flag;
 9 int main()
10 {
11     int n,m;
12     scanf("%d%d",&n,&m);
13     for(int i=0;i<m;i++)scanf("%d%d%d%d",&cmd[i],&l[i],&r[i],&num[i]);
14     for(int i=1;i<=n;i++)p[i]=-10000000;
15     for(int i=m-1;i>=0;i--)
16     {
17         if(cmd[i]==1)
18         {
19             for(int j=l[i];j<=r[i];j++)
20                 p[j]-=num[i];
21         }
22         else
23         {
24             for(int j=l[i];j<=r[i];j++)
25             {
26                 if(vis[j]&&p[j]<=num[i])continue;
27                 p[j]=num[i];
28                 vis[j]=1;
29             }
30         }
31     }
32     for(int i=1;i<=n;i++)ans[i]=p[i];
33     for(int i=0;i<m;i++)
34     {
35         if(cmd[i]==1)
36         {
37             for(int j=l[i];j<=r[i];j++)
38                 p[j]+=num[i];
39         }
40         else
41         {
42             int ma=-100000000;
43             for(int j=l[i];j<=r[i];j++)
44                 ma=max(ma,p[j]);
45             if(ma!=num[i]){flag=1;break;}
46         }
47     }
48     if(flag)puts("NO");
49     else
50     {
51         puts("YES");
52         for(int i=1;i<=n;i++)
53             printf("%d ",ans[i]);
54     }
55     return 0;
56 }
View Code

D:二分+dp: |ai-aj|<=(j-i)*x

 1 #include <cstdio>
 2 #include <algorithm>
 3 #define MAXN 2005
 4 #define LL long long
 5 using namespace std;
 6 int a[MAXN] , b[MAXN] , sum , k  ,n;
 7 bool ok(int d)
 8 {
 9     for(int i = 1 ; i<= n; i++)
10         b[i] = 1;
11     for(int i = 2 ; i <= n ; i++)
12     {
13         for(int j = 1 ; j <  i ; j++)
14         {
15             if(abs(a[i] - a[j]) <= (LL)(i - j) * d)
16                 b[i] = max(b[i] , b[j] + 1);
17         }
18     }
19     sum = 0;
20     for(int i = 1 ; i <= n ; i++)sum = max(sum , b[i]);
21     return n - sum <= k;
22 }
23 int main()
24 {
25     int l = 0 , r = 2*1000000000;
26     scanf("%d%d" , &n , &k);
27     for(int i = 1 ; i <= n ; i++)scanf("%d" , &a[i]);
28     while(l <= r)
29     {
30         int Mid = ((LL)l + r) / 2;
31         if(ok(Mid))r = Mid - 1;
32         else l = Mid + 1;
33     }
34     printf("%d\n" , l);
35     return 0;
36 }
View Code

 

转载于:https://www.cnblogs.com/yours1103/p/3419052.html

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值