#include<bits/stdc++.h>#define int long long using namespace std;
intread() {
int x = 0, f = 1, ch = getchar();
while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
if (ch == '-') f = -1, ch = getchar();
while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
return x * f;
}
constint N = 2e5+12 , mod = 1e7 + 7;
int a[N];
voidsolve(){
int n = read() , res = 0;
for( int i = 1 ; i <= n ; i ++ ) a[i] = read();
sort( a + 1 , a + 1 + n , greater<int>() );
int sum = a[1];
for( int i = 2 ; i <= n ; i ++ ) {
sum += a[i] ;
if( sum < 0 ) break;
res += sum;
res %= mod;
}
cout << res << "\n";
return;
}
int32_tmain() {
for( int T = read() ; T ; T -- )
solve();
return0;
}
#include<bits/stdc++.h>#define int long longusingnamespace std;
constint N = 1e6+5;
int n , m , a[N] , res = LONG_MAX , sum;
intread(){
int x = 0, f = 1, ch = getchar();
while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
if (ch == '-') f = -1, ch = getchar();
while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
return x * f;
}
int32_tmain(){
n = read() , m = read();
for( int l , r , w ; n ; n -- )
l = read() , r = read() , w = read() , a[l] += w , a[r+1] -= w , sum += w;
for( int i = 1 ; i <= m ; i ++ ) a[i] += a[i-1] , res = min( res , a[i] );
cout << sum - res << "\n";
return0;
}
3|0C School
首先时间可以全部转化成距离
#include<bits/stdc++.h>#define int long longusingnamespace std;
int n , h , m , q;
intread(){
int x = 0, f = 1, ch = getchar();
while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
if (ch == '-') f = -1, ch = getchar();
while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
return x * f;
}
intget( int x , int y ){
return x * m + y;
}
vector<pair<int,int>> p , t;
pair<int,int> Find( int x ){
int l = 0 , r = t.size() - 1 , mid , res;
while( l <= r ) {
mid = (l + r) >> 1;
if (t[mid].first <= x) res = mid, l = mid + 1;
else r = mid - 1;
}
return t[res];
}
int32_tmain(){
n = read() , h = read() , m = read() , q = read();
for( int a , b , c , d ; n ; n -- ){
a = read() , b = read() , c = read() , d = read();
p.push_back( { get(a,b) , get(c,d) } );
}
sort( p.begin() , p.end() , []( pair<int,int> a , pair<int,int> b ){ return a.first < b.first;} );
t.push_back( {0,0} );
for( auto [ l , r ] : p ){
if( l <= t.back().second ) t.back().second = max( t.back().second , r );
else t.push_back( { l , r } );
}
for( int x , a , b ; q ; q -- ){
a = read() , b = read() , x = get( a , b );
auto k = Find(x);
if( k.second >= x ) cout << "No\n";
else cout << "Yes\n";
}
return0;
}
4|0D Word
#include<bits/stdc++.h>usingnamespace std;
int32_tmain(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n , m; cin >> n >> m;
vector< string > g(n+2);
for( int i = 1 ; i <= n ; i ++ )
cin >> g[i];
cin >> g[0] >> g[n+1];
vector e( n+2 , vector<int>() );
for( int i = 0 ; i <= n+1 ; i ++ )
for( int j = 0 ; j < i ; j ++ ){
int cnt = 0;
for( int l = 0 ; l < m && cnt < 2 ; l ++ )
if( g[i][l] != g[j][l] ) cnt ++;
if( cnt < 2 ) e[i].push_back(j) , e[j].push_back(i);
}
vector<int> dis( n+2 , INT_MAX );
dis[0] = 0;
vector lst( n + 2 , vector<int>() );
lst[0].push_back(0);
queue< int > q;
q.push(0);
while( q.size() ) {
int u = q.front(); q.pop();
if( u == n + 1 ){
cout << dis[u]-1 << "\n";
for( auto i : lst[u] )
cout << g[i] << "\n";
return0;
}
for( auto v : e[u] ){
if( dis[v] > dis[u]+1 ) dis[v] = dis[u]+1 , q.push(v) , lst[v] = lst[u] , lst[v].push_back(v);
}
}
cout << "-1";
return0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-11-10 2021 ccpc 女生赛部分题解