Poj 1068

开始做法错误。想直接计算,发现不太行,回归了朴素的做法,生成所要计算的串,然后在根据串计算结果。
有一点很坑,题目的范围很小,但是测试数据较大,提交的时候一直RE,将数组改大之后通过。
 1 // #includes {{{
 2     #include<stdio.h>
 3     #include<stdlib.h>
 4     #include<string.h>
 5     #include<math.h>
 6     #include<assert.h>
 7     #include<stdarg.h>
 8     #include<time.h>
 9     #include<limits.h>
10     #include<ctype.h>
11     #include<string>
12     #include<map>
13     #include<set>
14     #include<queue>
15     #include<algorithm>
16     #include<vector>
17     #include<iostream>
18     #include<sstream>
19     using namespace std;
20     // }}}
21     // #defines {{{
22     #define FOR(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)
23     #define SZ(x) ((int)(x).size())
24     #define ALL(x) (x).begin(),(x).end()
25     #define REP(i,n) for(int i=0;i<(n);i++)
26     #define REP1(i,a,b) for(int i=(a);i<=(b);i++)
27     #define PER(i,n) for(int i=(n)-1;i>=0;i--)
28     #define PER1(i,a,b) for(int i=(a);i>=(b);i--)
29     #define RI(x) scanf("%d",&x)
30     #define DRI(x) int x;RI(x)
31     #define RII(x,y) scanf("%d%d",&x,&y)
32     #define DRII(x,y) int x,y;RII(x,y)
33     #define RIII(x,y,z) scanf("%d%d%d",&x,&y,&z)
34     #define DRIII(x,y,z) int x,y,z;RIII(x,y,z)
35     #define RS(x) scanf("%s",x)
36     #define PI(x) printf("%d\n",x)
37     #define PIS(x) printf("%d ",x)
38     #define CASET int ___T,cas=1;scanf("%d",&___T);while(___T--)
39     #define CASEN0(n) int cas=1;while(scanf("%d",&n)!=EOF&&n)
40     #define CASEN(n) int cas=1;while(scanf("%d",&n)!=EOF)
41     #define MP make_pair
42     #define PB push_back
43 
44     #define MS0(x) memset(x,0,sizeof(x))
45     #define MS1(x) memset(x,-1,sizeof(x))
46 
47     #define F first
48     #define S second
49     typedef pair<int,int> PII;
50     typedef long long LL;
51     typedef unsigned long long ULL;
52     // }}}
53 const int N=900;
54 int n;
55 int a[N],s[N];
56 main(){
57     CASET{
58         cin>>n;
59         int left=0,now=0;
60         int j=0;
61         REP(i,n) {cin>>a[i];
62             if (i==0){
63                 for(j=0;j<a[i];j++) s[j]=1;
64                 s[j]=2;
65             }else{
66             for (int t=0;t<a[i]-a[i-1];t++) 
67             {
68                 j++;
69                 s[j]=1;
70             }
71             j++;
72             s[j]=2;}
73         }
74         //cout<<j<<endl;
75         //REP(i,n*2) cout<<s[i]<<" ";
76         int p=0;
77         REP(i,n){
78             while ((s[p]==1)&&(p<n*2)) p++;
79             int m=1;
80             int q=p-1;
81             int ans=1;
82             while (m>0 && q>=0){
83                 if (s[q]==1) m--;
84                 if (s[q]==2) {ans++;m++;}
85                 q--;
86             }
87             cout<<ans<<" ";
88             p++;
89 
90         }
91         cout<<endl;
92     }
93 }

 

转载于:https://www.cnblogs.com/nisige/p/6295147.html

内容概要:该论文探讨了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能同时反射和传输信号,与传统仅能反射的RIS不同。结合NOMA技术,STAR-RIS可以提升覆盖范围、用户容量和频谱效率。针对STAR-RIS元素众多导致获取完整信道状态信息(CSI)开销大的问题,作者提出一种在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量的方法,以最大化总可实现速率并确保每个用户的最低速率要求。仿真结果显示,该方案优于STAR-RIS辅助的OMA系统。 适合人群:具备一定无线通信理论基础、对智能反射面技术和非正交多址接入技术感兴趣的科研人员和工程师。 使用场景及目标:①适用于希望深入了解STAR-RIS与NOMA结合的研究者;②为解决无线通信中频谱资源紧张、提高系统性能提供新的思路和技术手段;③帮助理解PSO算法在无线通信优化问题中的应用。 其他说明:文中提供了详细的Python代码实现,涵盖系统参数设置、信道建模、速率计算、目标函数定义、约束条件设定、主优化函数设计及结果可视化等环节,便于读者理解和复现实验结果。此外,文章还对比了PSO与其他优化算法(如DDPG)的区别,强调了PSO在不需要显式CSI估计方面的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值