这周写了天梯的题组,完成了任务写到了1400分,然后跟往常一样打了cf,还是一如既往的只写出一道题,然后补了cf的题组,还差一点待会就写完,然后进行了Java学习,了解了面向对象的大致概念。
一道迪切斯特啦的题目,套用迪切斯特啦的模板,然后因为要输出 经过城市的编号,拿一个数组存储每经过城市的前一个城市编号。
#includeusing namespace std; int mp[500][500]; int low[500],vis[500]; int inf=1e9+2; int n,m; int b,e; int len=0; int cnt[100000]; int num[100000]; int way[100000]; int sum[500]; int arr[100000]; void init() { for(int i=0;i low[k]+mp[k][j]){ low[j]=low[k]+mp[k][j]; cnt[j]=cnt[k]; num[j]=num[k]+sum[j]; way[j]=k; } //low[j]=min(low[j],low[k]+mp[k][j]); else if(vis[j]==0&&low[j]==low[k]+mp[k][j]){ cnt[j]+=cnt[k]; if(num[j] >n>>m>>b>>e; for(int i=0;i >sum[i]; }init(); for(int i=0;i >x>>y; int w; cin>>w; mp[x][y]=w; mp[y][x]=w; } //for(int i) //int k= Dij(); cout<
这个题目的难点在输出名次,我们可以设置一个偏移量,名次就为上一个人的名次加上这个偏移量。
#includeusing namespace std; struct node { string name; int num; int r; }; bool cmp(node a,node b){ if(a.num==b.num){ return a.name b.num; } int main() { int n,g,k; cin>>n>>g>>k; node stu[n]; int ans=0; for(int i=0;i >stu[i].name>>stu[i].num; if(stu[i].num>=60&&stu[i].num =g&&stu[i].num<=100){ ans+=50; } } sort(stu,stu+n,cmp); cout<
天梯分数
已完成的cf补题



