【Codeforces #167 Div1 & Div2】Solutions

本文提供了CodeForces比赛272和273题目的详细解答,涵盖从简单的约瑟夫问题到复杂的图论与算法优化等题目,通过具体的代码实现展示了每道题目的解题思路。

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

【A. Dima and Friends】

  http://www.codeforces.com/contest/272/problem/A

  题目大意:n+1个人出手指头,加起来再做类似约瑟夫的出圈,问有多少种方法让自己不出圈。

View Code
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int n,a,sum,cnt;
 5 
 6 int main(){
 7     cin>>n;
 8     for(int i=0;i<n;i++){
 9         cin>>a;
10         sum+=a;
11     }
12     for(int i=1;i<=5;i++)
13         if((sum+i)%(n+1)!=1) cnt++;
14     cout<<cnt<<endl;
15     return 0;
16 }

 

【B.Dima and Sequence】

  http://www.codeforces.com/contest/272/problem/B

  题目大意:定义一个函数f(x),问给定数列an中有多少对函数值相同的数。

  由函数的定义可以看出max{f(x)}并不非常大,由此可以记录下每一个数的函数值进行统计。

View Code
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int n,a,val[10000010];
 5 long long cnt;
 6 
 7 int f(int x){
 8     if(!x) return x;
 9     return (x&1)?(f((x-1)>>1)+1):f(x>>1);
10 }
11 
12 int main(){
13     cin>>n;
14     for(int i=0;i<n;i++){
15         cin>>a;
16         cnt+=val[f(a)]++;
17     }
18     cout<<cnt<<endl;
19     return 0;
20 }

 

【C.Dima and Staircase】(A in Div1)

  http://www.codeforces.com/contest/272/problem/C

  题目大意:有一个楼梯,在楼梯第一层往下扔长为w,高为h的木块,规则类似俄罗斯方块,回答每个木块底边的高度。

  楼梯高度是递增的,当一个木块落下时将影响1~w的所有高度,使他们的值相同。可以使用一个指针表示落下的木块形成的最高平台影响的区域1~p,并记录1~p的最高高度,每次只需要修改指针即可。

View Code
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int a[100010],n,m,w,h,cur;
 5 long long maxh;
 6 
 7 int main(){
 8     cin>>n;
 9     for(int i=1;i<=n;i++)
10         cin>>a[i];
11     cin>>m;
12     for(int i=1;i<=m;i++){
13         cin>>w>>h;
14         if(cur<w){
15             if(a[w]>=maxh){
16                 cout<<a[w]<<endl;
17                 maxh=a[w]+h;
18                 cur=w;
19             }else{
20                 cout<<maxh<<endl;
21                 maxh+=h;
22                 cur=w;
23             }
24         }else{
25             cout<<maxh<<endl;
26             maxh+=h;
27             cur=w;
28         }
29     }
30     return 0;
31 }

 

【D.Dima and Two Sequences】(B in Div1)

  http://www.codeforces.com/contest/272/problem/D

  题目大意:有2*n个点,问有多少种方法使得他们按x坐标不减排序。

  对于x坐标相同的点,一共有种排列方法,但是关键问题是其中有重复的点,重复的点互相交换位置不引起方案的变化,设重复点有k个,则方案数为

  因为除数只含有因子2,且被除数含有的因子2一定比分母含有的多,所以在算阶乘的时候逐个除去因子2。

  最后各个不同x坐标的方案数的乘积为答案。

View Code
 1 #include <iostream>
 2 #include <utility>
 3 #include <algorithm>
 4 using namespace std;
 5 typedef pair<int,int> PII;
 6 
 7 int x,n,BASE,t,same;
 8 PII p[200010];
 9 long long ans=1;
10 
11 int main(){
12     cin>>n;
13     for(int i=0;i<2*n;i++){
14         cin>>x;
15         p[i]=PII(x,i%n);
16     }
17     cin>>BASE;
18     sort(p,p+2*n);
19     int i=0,j=0;
20     while(i<2*n){
21         while(j<=2*n && p[j+1].first==p[j].first)
22             if(p[++j].second==p[j-1].second) same++;
23         for(int k=2;k<=j-i+1;k++){
24             t=k;
25             while(!(t&1) && same) t/=2,same--;
26             ans=(ans*t)%BASE;
27         }
28         i=++j;
29     }
30     cout<<ans<<endl;
31     return 0;
32 }


【E.Dima and Horses】(C in Div1)

  http://www.codeforces.com/contest/272/problem/E

  题目大意:有一群马,马之间有仇恨关系,将马分成两组,使得任意一匹马在分组中最多只有一个仇恨关系。

  因为m最大是n(n-1)/2,所以应该没有无解的情况。。仇恨关系不超过三个,所以dfs一下就可以了。

View Code
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int n,m,x,y,f[300010],a[300010][4];
 5 
 6 void dfs(int x){
 7     int cnt=0;
 8     for(int i=1;i<=a[x][0];i++)
 9         cnt+=f[x]==f[a[x][i]];
10     if(cnt>1){
11         f[x]^=1;
12         for(int i=1;i<=a[x][0];i++)
13             if(f[x]==f[a[x][i]]) dfs(a[x][i]);
14     }
15 }
16 
17 int main(){
18     cin>>n>>m;
19     while(m--){
20         cin>>x>>y;
21         a[x][++a[x][0]]=y;
22         a[y][++a[y][0]]=x;
23     }
24     for(int i=1;i<=n;i++)
25         dfs(i);
26     for(int i=1;i<=n;i++)
27         cout<<f[i];
28 }

 

【D.Dima and Figure】(Div 1)

  http://www.codeforces.com/contest/273/problem/D

  

  

转载于:https://www.cnblogs.com/Delostik/archive/2013/02/14/2911239.html

JFM7VX690T型SRAM型现场可编程门阵列技术手册主要介绍的是上海复旦微电子集团股份有限公司(简称复旦微电子)生产的高性能FPGA产品JFM7VX690T。该产品属于JFM7系列,具有现场可编程特性,集成了功能强大且可以灵活配置组合的可编程资源,适用于实现多种功能,如输入输出接口、通用数字逻辑、存储器、数字信号处理和时钟管理等。JFM7VX690T型FPGA适用于复杂、高速的数字逻辑电路,广泛应用于通讯、信息处理、工业控制、数据中心、仪表测量、医疗仪器、人工智能、自动驾驶等领域。 产品特点包括: 1. 可配置逻辑资源(CLB),使用LUT6结构。 2. 包含CLB模块,可用于实现常规数字逻辑和分布式RAM。 3. 含有I/O、BlockRAM、DSP、MMCM、GTH等可编程模块。 4. 提供不同的封装规格和工作温度范围的产品,便于满足不同的使用环境。 JFM7VX690T产品系列中,有多种型号可供选择。例如: - JFM7VX690T80采用FCBGA1927封装,尺寸为45x45mm,使用锡银焊球,工作温度范围为-40&deg;C到+100&deg;C。 - JFM7VX690T80-AS同样采用FCBGA1927封装,但工作温度范围更广,为-55&deg;C到+125&deg;C,同样使用锡银焊球。 - JFM7VX690T80-N采用FCBGA1927封装和铅锡焊球,工作温度范围与JFM7VX690T80-AS相同。 - JFM7VX690T36的封装规格为FCBGA1761,尺寸为42.5x42.5mm,使用锡银焊球,工作温度范围为-40&deg;C到+100&deg;C。 - JFM7VX690T36-AS使用锡银焊球,工作温度范围为-55&deg;C到+125&deg;C。 - JFM7VX690T36-N使用铅锡焊球,工作温度范围与JFM7VX690T36-AS相同。 技术手册中还包含了一系列详细的技术参数,包括极限参数、推荐工作条件、电特性参数、ESD等级、MSL等级、重量等。在产品参数章节中,还特别强调了封装类型,包括外形图和尺寸、引出端定义等。引出端定义是指对FPGA芯片上的各个引脚的功能和接线规则进行说明,这对于FPGA的正确应用和电路设计至关重要。 应用指南章节涉及了FPGA在不同应用场景下的推荐使用方法。其中差异说明部分可能涉及产品之间的性能差异;关键性能对比可能包括功耗与速度对比、上电浪涌电流测试情况说明、GTH Channel Loss性能差异说明、GTH电源性能差异说明等。此外,手册可能还提供了其他推荐应用方案,例如不使用的BANK接法推荐、CCLK信号PCB布线推荐、JTAG级联PCB布线推荐、系统工作的复位方案推荐等,这些内容对于提高系统性能和稳定性有着重要作用。 焊接及注意事项章节则针对产品的焊接过程提供了指导,强调焊接过程中的注意事项,以确保产品在组装过程中的稳定性和可靠性。手册还明确指出,未经复旦微电子的许可,不得翻印或者复制全部或部分本资料的内容,且不承担采购方选择与使用本文描述的产品和服务的责任。 上海复旦微电子集团股份有限公司拥有相关的商标和知识产权。该公司在中国发布的技术手册,版权为上海复旦微电子集团股份有限公司所有,未经许可不得进行复制或传播。 技术手册提供了上海复旦微电子集团股份有限公司销售及服务网点的信息,方便用户在需要时能够联系到相应的服务机构,获取最新信息和必要的支持。同时,用户可以访问复旦微电子的官方网站(***以获取更多产品信息和公司动态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值