临时扔一下
T1
#include<bits/stdc++.h>
using namespace std;
int tot1,tot2;
bool p1,p2;
int main()
{
int n;
cin>>n;
char awa=getchar();
for(int i=1;i<=n;i++)
{
p1=false;p2=false;
int num=0,NUM=0;
char mem;
char c=getchar();
if(c>='A'&&c<='Z') p1=true;
while(c!='\n'&&c!=EOF)
{
if(c>='A'&&c<='Z') NUM++;
if(c>='a'&&c<='z') num++;
mem=c;
c=getchar();
}
if(NUM>num) p1=true;
if(mem>='0'&&mem<='9'&&!(num&1)) p2=true;
tot1+=p1;
tot2+=p2;
}
cout<<tot1<<" "<<tot2<<endl;
}
T2
#include<bits/stdc++.h>
using namespace std;
int tot1,tot2;
bool p1,p2;
int main()
{
int n;
cin>>n;
char awa=getchar();
for(int i=1;i<=n;i++)
{
p1=false;p2=false;
int num=0,NUM=0;
char mem;
char c=getchar();
if(c>='A'&&c<='Z') p1=true;
while(c!='\n'&&c!=EOF)
{
if(c>='A'&&c<='Z') NUM++;
if(c>='a'&&c<='z') num++;
mem=c;
c=getchar();
}
if(NUM>num) p1=true;
if(mem>='0'&&mem<='9'&&!(num&1)) p2=true;
tot1+=p1;
tot2+=p2;
}
cout<<tot1<<" "<<tot2<<endl;
}
T3
#include<bits/stdc++.h>
#define ll long long
#define int long long
using namespace std;
const int MAX=50500;
inline int read()
{
int x=0;char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') {x=x*10+c-48;c=getchar();}
return x;
}
int w[MAX];
int dp[MAX][60][6];
int power[10]={0,1,2,4,8};
signed main()
{
int T=read();
while(T--)
{
memset(w,0,sizeof(w));
int n=read(),m=read();
for(int i=1;i<=n;i++)
{
int awa=read();
while(awa--) w[i]+=read();
}
memset(dp,0xc0,sizeof(dp));
dp[0][0][0]=0;
dp[1][1][0]=0;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
dp[i][j][1]=max(dp[i][j][1],dp[i-1][j][0]+w[i]);
dp[i][j][2]=max(dp[i][j][2],dp[i-1][j][1]+w[i]*2);
dp[i][j][3]=max(dp[i][j][3],dp[i-1][j][2]+w[i]*4);
dp[i][j][4]=max(dp[i][j][4],dp[i-1][j][3]+w[i]*8);
dp[i][j][4]=max(dp[i][j][4],dp[i-1][j][4]+w[i]*8);
if(j>0) dp[i][j][0]=max({dp[i][j][0],dp[i-1][j-1][3],dp[i-1][j-1][4]});
if(j==1) dp[i][j][0]=max({dp[i][j][0],dp[i-1][j-1][1],dp[i-1][j-1][2]});
}
}
printf("%lld\n",max({dp[n][m][0],dp[n][m][1],dp[n][m][2],dp[n][m][3],dp[n][m][4]}));
}
T4
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAX=1e6+50;
inline int read()
{
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=x*10+c-48;c=getchar();}
return x*f;
}
int n,k,q;
int w[MAX],fa[MAX];
bool awa[MAX];
vector<int> vec[MAX];
set<int> s[MAX];
int size[MAX];
int dfs1(int x)
{
int qwq=INT_MAX;
for(int i:vec[x])
qwq=min(qwq,dfs1(i));
if(!vec[x].size()) qwq=0;
if(w[x]<k) qwq=3;
if(qwq>0) awa[x]=true;
return qwq-1;
}
void dfs2(int x)
{
s[x].insert(w[x]);
for(int i:vec[x])
{
dfs2(i);
if(size[i]==-1||size[x]==-1)
{
size[x]=-1;
awa[x]=true;
continue;
}
for(int j:s[i])
s[x].insert(j);
}
if(s[x].size()>=q)
{
awa[x]=true;
size[x]=-1;
}
}
int main()
{
n=read(),k=read(),q=read();
for(int i=1;i<=n;i++)
w[i]=read();
for(int i=2;i<=n;i++)
{
fa[i]=read();
vec[fa[i]].push_back(i);
}
dfs1(1);
dfs2(1);
int ans=0;
for(int i=1;i<=n;i++)
if(!awa[i]) ans++;
cout<<ans<<endl;
}
标签:普及,int,东西,long,&&,getchar,dp,size
From: https://www.cnblogs.com/xuay/p/16836367.html