模板题。
//#pragma GCC optimize(2)
#include
using namespace std;
vector<long long> a;
int main()
{
ios::sync_with_stdio(false);
long long x;
while(cin>>x && x)
a.push_back(x);
int n=a.size();
(a.size()&1)?cout<<a[(n-1)/2]:cout<<a[(n-1)/2]+a[n/2];
return 0;
}
一开始把(n-1)/2
写成n-1/2
(忘记括号),怎么改怎么错,发现问题之后我人都傻了。
多组输入注意vector的清空。
#pragma GCC optimize(2)
#include
using namespace std;
vector<int> a[10010];
int main()
{
ios::sync_with_stdio(false);
int n, m, x, y;
while(~scanf("%d%d", &n, &m))
{
//a.clear();
for(int i=1; i<=m; i++)
{
//cin>>x>>y;
scanf("%d%d", &x, &y);
a[x].push_back(y);
}
for(int i=1; i<=n; i++)
{
for(int j=0; j<a[i].size(); j++)
(j==a[i].size()-1)?printf("%d", a[i][j]):printf("%d ", a[i][j]);
a[i].clear();
printf("\n");
}
}
return 0;
}
多组输入注意vector的清空。
//#pragma GCC optimize(2)
#include
using namespace std;
vector<int> jm[100010];
int n, m, a, b;
int main()
{
//ios::sync_with_stdio(false);
while(~scanf("%d%d", &n, &m))
{
//jm[].clear();
for(int i=1; i<=n; i++)
jm[i].push_back(i);
for(int i=1; i<=m; i++)
{
scanf("%d%d", &a, &b);
//for(int j=0; j
if(a==b || jm[b].size()==0) continue;
for(int j=0; j<jm[b].size(); j++)
jm[a].push_back(jm[b][j]);
jm[b].clear();
}
for(int i=1; i<=n; i++)
{
if(!jm[i].size()) printf("-1");
else
{
printf("%d", jm[i][0]);
for(int j=1; j<jm[i].size(); j++)
printf(" %d", jm[i][j]);
}
printf("\n");
jm[i].clear();
}
}
return 0;
}
//#pragma GCC optimize(2)
#include
using namespace std;
vector<string> web[1010];
string usern, websi;
int n, m;
int main()
{
//ios::sync_with_stdio(false);
scanf("%d%d", &n, &m);
int cnt=0;
for(int i=1; i<=m; i++)
{
int tmp=0;
cin>>usern>>websi;
for(int j=1; j<=cnt; j++)
if(web[j].front()==usern) tmp=j;
if(tmp) web[tmp].push_back(websi);
else
{
cnt++;
web[cnt].push_back(usern);
web[cnt].push_back(websi);
}
}
for(int i=1; i<=cnt; i++)
{
for(int j=0; j<web[i].size()-1; j++)
cout<<web[i][j]<<" ";
cout<<web[i][web[i].size()-1];
cout<<endl;
}
return 0;
}
进行游戏模拟,如果当前位置会被处刑,则在此位置安放坏人即可。
//#pragma GCC optimize(2)
#include
using namespace std;
vector<int> table;
int n, m, N;
bool vis[20010];
int main()
{
//ios::sync_with_stdio(false);
while(~scanf("%d%d", &n, &m))
{
memset(vis, 0, sizeof(vis)); // 赋初值为0:好人
N = n*2;
table.clear();
bool flag = 0;
int pos = 1; // pos为圆桌上的位置,比下标大1
for(int i=1; i<=N; i++)
table.push_back(i);
while(N > n)
{
pos += m-1; // 移步至倒霉的人
if(pos>N) // 超出
{
pos %= N; // 取模,回到范围内
if(!pos) // 人数的倍数
pos = N;
}
vis[table[pos-1]] = 1; // 这位置为坏人
table.erase(table.begin()+pos-1); // 坏人倒霉
if(pos == N) // 本次寻找结束
pos = 1; // 回到第一个人
N--; // 出局了一个人
}
for(int i=1; i<=n*2; i++)
vis[i]?printf("B"):printf("G");
printf("\n");
}
return 0;
}
诶话说我这题没用vector啊。。。
#pragma GCC optimize(2)
#include
using namespace std;
int n, k, jw[1000010],t[1000010];
//vector a;
int main()
{
ios::sync_with_stdio(false);
scanf("%d%d", &n, &k);
for(int i=1; i<=n; i++)
scanf("%d", &jw[i]);
stable_sort(jw+1, jw+n+1);
int tmp=n;
for(int i=n; i>=1; i--)
{
while(jw[tmp]>jw[i]+k) tmp--;
//a.push_back(tmp-i+1);
t[i] = max(t[i+1], tmp-i+1);
}
printf("%d\n", t[1]);
return 0;
}
贴友链:https://blog.csdn.net/ljw_study_in_CSDN/article/details/86478604?utm_source=app