HDU1219
计数
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include<stdint.h> 4 typedef long long ll; 5 #define int long long 6 #define scan(n) scanf("%lld", &(n)) 7 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 8 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 9 #define prin(n) printf('%lld', (n)) 10 #define pb push_back 11 #define mp make_pair 12 #define ms(a) memset(a, 0, sizeof(a)) 13 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 14 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 15 const int inf = 0x3f3f3f3f; 16 using namespace std; 17 const int maxn = 2e5+100; 18 19 int a[500]; 20 int32_t main() { 21 char s[maxn]; 22 while(gets(s)){ 23 int n=strlen(s); 24 25 fo(i,0,30)a[i]=0; 26 fo(i,0,n-1){ 27 if(s[i]<='z'&&s[i]>='a') 28 a[s[i]-'a']++; 29 } 30 char x='a'; 31 fo(i,0,25){ 32 cout<<x<<":"<<a[i]<<endl; 33 x++; 34 } 35 printf("\n"); 36 } 37 return 0; 38 }
HDU1220
I LOVE
Concrete Mathematics
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n; 5 while(cin>>n){ 6 long long t=n*n*n*(n*n*n-1)/2-3*n*(n-1)*(n); 7 cout<<t<<endl; 8 } 9 }
HDU1221
从未见过如此厚颜无耻的几何题,嘤嘤嘤
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include<stdint.h> 4 #define int long long 5 using namespace std; 6 double x,y,r,xl,yl,xr,yr; 7 double dis(int xx,int yy){return ((x-xx)*(x-xx)+(y-yy)*(y-yy));} 8 bool yes(){ 9 if(dis(xl,yl)<=r*r||dis(xl,yr)<=r*r||dis(xr,yr)<=r*r||dis(xr,yl)<=r*r)return true; 10 if(x<=xr&&x>=xl&&((abs(y-yl)<=r)||(abs(y-yr)<=r)))return true; 11 if(y<=yr&&y>=yl&&((abs(x-xl)<=r)||(abs(x-xr)<=r)))return true; 12 return false; 13 } 14 bool inner(){ 15 if(dis(xl,yl)<r*r&&dis(xl,yr)<r*r&&dis(xr,yr)<r*r&&dis(xr,yl)<r*r)return true; 16 return false; 17 } 18 int32_t main() { 19 int n;cin>>n; 20 while(n--){ 21 cin>>x>>y>>r>>xl>>yl>>xr>>yr; 22 if(xl>xr)swap(xl,xr);if(yl>yr)swap(yl,yr); 23 24 if(inner())printf("NO\n"); 25 else if(yes())printf("YES\n"); 26 else printf("NO\n"); 27 28 } 29 return 0; 30 }
HDU1222
NO TAG because................
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include<stdint.h> 4 #define int long long 5 #define scan(n) scanf("%lld", &(n)) 6 const int inf = 0x3f3f3f3f; 7 using namespace std; 8 const int maxn = 2e5+100; 9 10 11 int32_t main() { 12 int q;scan(q); 13 while(q--){ 14 int n,m; 15 scan(m),scan(n); 16 if(__gcd(m,n)==1)cout<<"NO\n"; 17 else cout<<"YES\n"; 18 } 19 return 0; 20 }
HDU1223
突如其来的大数模板
唱跳rap篮球+CV
1 #include <bits/stdc++.h> 2 #include<stdint.h> 3 #define int long long 4 #define scan(n) scanf("%lld", &(n)) 5 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 6 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 7 #define fo(i,a,b) for(int i=(a);i<=(b);i++) 8 const int inf = 0x3f3f3f3f; 9 using namespace std; 10 #define MAXN 9999 11 #define MAXSIZE 10 12 #define DLEN 4 13 class BigNum{ 14 private: 15 int a[500]; 16 int len; 17 public: 18 BigNum(){ len = 1;memset(a,0,sizeof(a)); } 19 BigNum(const int); 20 BigNum(const char*); 21 BigNum(const BigNum &); 22 BigNum &operator=(const BigNum &); 23 24 friend istream& operator>>(istream&, BigNum&); 25 friend ostream& operator<<(ostream&, BigNum&); 26 27 BigNum operator+(const BigNum &) const; 28 BigNum operator-(const BigNum &) const; 29 BigNum operator*(const BigNum &) const; 30 BigNum operator/(const int &) const; 31 32 BigNum operator^(const int &) const; 33 int operator%(const int &) const; 34 bool operator>(const BigNum & T)const; 35 bool operator>(const int & t)const; 36 37 void print(); 38 }; 39 BigNum::BigNum(const int b) 40 { 41 int c,d = b; 42 len = 0; 43 memset(a,0,sizeof(a)); 44 while(d > MAXN) 45 { 46 c = d - (d / (MAXN + 1)) * (MAXN + 1); 47 d = d / (MAXN + 1); 48 a[len++] = c; 49 } 50 a[len++] = d; 51 } 52 BigNum::BigNum(const char*s) 53 { 54 int t,k,index,l,i; 55 memset(a,0,sizeof(a)); 56 l=strlen(s); 57 len=l/DLEN; 58 if(l%DLEN) 59 len++; 60 index=0; 61 for(i=l-1;i>=0;i-=DLEN) 62 { 63 t=0; 64 k=i-DLEN+1; 65 if(k<0) 66 k=0; 67 for(int j=k;j<=i;j++) 68 t=t*10+s[j]-'0'; 69 a[index++]=t; 70 } 71 } 72 BigNum::BigNum(const BigNum & T) : len(T.len) 73 { 74 int i; 75 memset(a,0,sizeof(a)); 76 for(i = 0 ; i < len ; i++) 77 a[i] = T.a[i]; 78 } 79 BigNum & BigNum::operator=(const BigNum & n) 80 { 81 int i; 82 len = n.len; 83 memset(a,0,sizeof(a)); 84 for(i = 0 ; i < len ; i++) 85 a[i] = n.a[i]; 86 return *this; 87 } 88 istream& operator>>(istream & in, BigNum & b) 89 { 90 char ch[MAXSIZE*4]; 91 int i = -1; 92 in>>ch; 93 int l=strlen(ch); 94 int count=0,sum=0; 95 for(i=l-1;i>=0;) 96 { 97 sum = 0; 98 int t=1; 99 for(int j=0;j<4&&i>=0;j++,i--,t*=10) 100 { 101 sum+=(ch[i]-'0')*t; 102 } 103 b.a[count]=sum; 104 count++; 105 } 106 b.len =count++; 107 return in; 108 109 } 110 ostream& operator<<(ostream& out, BigNum& b) 111 { 112 int i; 113 cout << b.a[b.len - 1]; 114 for(i = b.len - 2 ; i >= 0 ; i--) 115 { 116 cout.width(DLEN); 117 cout.fill('0'); 118 cout << b.a[i]; 119 } 120 return out; 121 } 122 123 BigNum BigNum::operator+(const BigNum & T) const 124 { 125 BigNum t(*this); 126 int i,big; 127 big = T.len > len ? T.len : len; 128 for(i = 0 ; i < big ; i++) 129 { 130 t.a[i] +=T.a[i]; 131 if(t.a[i] > MAXN) 132 { 133 t.a[i + 1]++; 134 t.a[i] -=MAXN+1; 135 } 136 } 137 if(t.a[big] != 0) 138 t.len = big + 1; 139 else 140 t.len = big; 141 return t; 142 } 143 BigNum BigNum::operator-(const BigNum & T) const 144 { 145 int i,j,big; 146 bool flag; 147 BigNum t1,t2; 148 if(*this>T) 149 { 150 t1=*this; 151 t2=T; 152 flag=0; 153 } 154 else 155 { 156 t1=T; 157 t2=*this; 158 flag=1; 159 } 160 big=t1.len; 161 for(i = 0 ; i < big ; i++) 162 { 163 if(t1.a[i] < t2.a[i]) 164 { 165 j = i + 1; 166 while(t1.a[j] == 0) 167 j++; 168 t1.a[j--]--; 169 while(j > i) 170 t1.a[j--] += MAXN; 171 t1.a[i] += MAXN + 1 - t2.a[i]; 172 } 173 else 174 t1.a[i] -= t2.a[i]; 175 } 176 t1.len = big; 177 while(t1.a[t1.len - 1] == 0 && t1.len > 1) 178 { 179 t1.len--; 180 big--; 181 } 182 if(flag) 183 t1.a[big-1]=0-t1.a[big-1]; 184 return t1; 185 } 186 187 BigNum BigNum::operator*(const BigNum & T) const 188 { 189 BigNum ret; 190 int i,j,up; 191 int temp,temp1; 192 for(i = 0 ; i < len ; i++) 193 { 194 up = 0; 195 for(j = 0 ; j < T.len ; j++) 196 { 197 temp = a[i] * T.a[j] + ret.a[i + j] + up; 198 if(temp > MAXN) 199 { 200 temp1 = temp - temp / (MAXN + 1) * (MAXN + 1); 201 up = temp / (MAXN + 1); 202 ret.a[i + j] = temp1; 203 } 204 else 205 { 206 up = 0; 207 ret.a[i + j] = temp; 208 } 209 } 210 if(up != 0) 211 ret.a[i + j] = up; 212 } 213 ret.len = i + j; 214 while(ret.a[ret.len - 1] == 0 && ret.len > 1) 215 ret.len--; 216 return ret; 217 } 218 BigNum BigNum::operator/(const int & b) const 219 { 220 BigNum ret; 221 int i,down = 0; 222 for(i = len - 1 ; i >= 0 ; i--) 223 { 224 ret.a[i] = (a[i] + down * (MAXN + 1)) / b; 225 down = a[i] + down * (MAXN + 1) - ret.a[i] * b; 226 } 227 ret.len = len; 228 while(ret.a[ret.len - 1] == 0 && ret.len > 1) 229 ret.len--; 230 return ret; 231 } 232 int BigNum::operator %(const int & b) const //大数对一个int类型的变量进行取模运算 233 { 234 int i,d=0; 235 for (i = len-1; i>=0; i--) 236 { 237 d = ((d * (MAXN+1))% b + a[i])% b; 238 } 239 return d; 240 } 241 BigNum BigNum::operator^(const int & n) const 242 { 243 BigNum t,ret(1); 244 int i; 245 if(n<0) 246 exit(-1); 247 if(n==0) 248 return 1; 249 if(n==1) 250 return *this; 251 int m=n; 252 while(m>1) 253 { 254 t=*this; 255 for( i=1;i<<1<=m;i<<=1) 256 { 257 t=t*t; 258 } 259 m-=i; 260 ret=ret*t; 261 if(m==1) 262 ret=ret*(*this); 263 } 264 return ret; 265 } 266 bool BigNum::operator>(const BigNum & T) const //大数和另一个大数的大小比较 267 { 268 int ln; 269 if(len > T.len) 270 return true; 271 else if(len == T.len) 272 { 273 ln = len - 1; 274 while(a[ln] == T.a[ln] && ln >= 0) 275 ln--; 276 if(ln >= 0 && a[ln] > T.a[ln]) 277 return true; 278 else 279 return false; 280 } 281 else 282 return false; 283 } 284 bool BigNum::operator >(const int & t) const 285 { 286 BigNum b(t); 287 return *this>b; 288 } 289 290 void BigNum::print() //输出大数 291 { 292 int i; 293 cout << a[len - 1]; 294 for(i = len - 2 ; i >= 0 ; i--) 295 { 296 cout.width(DLEN); 297 cout.fill('0'); 298 cout << a[i]; 299 } 300 cout << endl; 301 } 302 BigNum f[60][60],ans[60]; 303 int32_t main() { 304 f[1][1]=1; 305 ans[1]=1; 306 fo(i,2,50){ 307 f[i][1]=1;ans[i]=1; 308 fo(j,2,i){ 309 f[i][j]=(f[i-1][j-1]+f[i-1][j])*j; 310 ans[i]=ans[i]+f[i][j]; 311 } 312 } 313 int q;scan(q); 314 while(q--){ 315 int n;scan(n); 316 ans[n].print(); 317 } 318 return 0; 319 }
HDU1224
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include <stdint.h> 4 using namespace std; 5 #define int long long 6 #define scan(n) scanf("%lld", &(n)) 7 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 8 #define pb push_back 9 #define mp make_pair 10 #define ms(a) memset(a, 0, sizeof(a)) 11 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 12 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 13 const int inf = 0x3f3f3f3f; 14 int weight[200]; 15 int pre[200]; 16 vector<int>graph[200]; 17 int a[200]; 18 void putans(int u){ 19 if(u==-1)return; 20 putans(pre[u]); 21 printf("%lld->",u); 22 } 23 int32_t main(){ 24 int T;scan(T); 25 fo(cas,1,T){ 26 int n;scan(n); 27 fo(i,0,n+1)weight[i]=0,pre[i]=-1,graph[i].clear(); 28 fo(i,1,n)scan(a[i]);a[n+1]=0; 29 int m;scan(m); 30 int tot=0; 31 fo(i,1,m){int x,y;scann(x,y);graph[x].pb(y);} 32 fo(i,1,n+1){ 33 int len=graph[i].size(); 34 fo(j,0,len-1){ 35 tot=graph[i][j]; 36 if(weight[i]+a[i]>weight[tot]){ 37 weight[tot]=weight[i]+a[i]; 38 pre[tot]=i; 39 } 40 } 41 } 42 printf("CASE %lld#\npoints : %lld\n",cas,weight[n+1]); 43 printf("circuit : 1->"); 44 putans(pre[n+1]); 45 printf("1\n"); 46 if(cas!=T)printf("\n"); 47 } 48 return 0; 49 }
HDU1225
1 #include <bits/stdc++.h> 2 #include<stdint.h> 3 #define int long long 4 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 5 const int inf = 0x3f3f3f3f; 6 using namespace std; 7 const int maxn = 2e5+100; 8 struct node{ 9 string name; 10 int score; 11 int sum; 12 int net; 13 }v[maxn]; 14 bool cmp(node a,node b){ 15 if(a.score!=b.score)return a.score>b.score; 16 if(a.net!=b.net)return a.net>b.net; 17 if(a.sum!=b.sum)return a.sum>b.sum; 18 return a.name<b.name; 19 } 20 int32_t main() { 21 int n; 22 while(cin>>n){ 23 fo(i,1,n){v[i].net=0;v[i].sum=0;v[i].score=0;} 24 map<string,int>mp; 25 int tot=1; 26 fo(i,1,n*n-n){ 27 string l,r,vs;char c;int p,q; 28 cin>>l>>vs>>r>>p>>c>>q; 29 int x=mp[l],y=mp[r]; 30 if(x==0)x=tot++,v[x].name=l,mp[l]=x; 31 v[x].sum+=p,v[x].net+=p-q; 32 if(y==0)y=tot++,v[y].name=r,mp[r]=y; 33 v[y].sum+=q,v[y].net+=q-p; 34 if(p>q)v[x].score+=3; 35 else if(p==q)v[x].score+=1,v[y].score+=1; 36 else v[y].score+=3; 37 } 38 sort(v+1,v+n+1,cmp); 39 fo(i,1,n)cout<<v[i].name<<" "<<v[i].score<<endl; 40 cout<<endl; 41 } 42 return 0; 43 }
HDU1226
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include<stdint.h> 4 #define int long long 5 #define scan(n) scanf("%lld", &(n)) 6 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 7 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 8 #define prin(n) printf("%lld", (n)) 9 #define pb push_back 10 #define mp make_pair 11 #define ms(a) memset(a, 0, sizeof(a)) 12 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 13 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 14 const int inf = 0x3f3f3f3f; 15 using namespace std; 16 const int maxn = 5020; 17 int a[30]; 18 int vis[maxn]; 19 struct node{ 20 int ans[520]; 21 int length; 22 }; 23 queue<node>q; 24 int getmod(node t,int c,int n){ 25 int ans=0; 26 fo(i,0,t.length-1)ans=(ans*c+t.ans[i])%n; 27 return ans; 28 } 29 int32_t main() { 30 int T;scan(T); 31 while(T--){ 32 int n,c,m,f=0;scannn(n,c,m); 33 while(!q.empty())q.pop(); 34 fo(i,0,29)a[i]=0; 35 fo(i,1,m){ 36 char ch;cin>>ch; 37 if(ch>='A')a[ch-'A'+10]=1;else a[ch-'0']=1; 38 } 39 if(n==0){ 40 if(a[0])printf("0\n"); 41 else printf("give me the bomb please\n"); 42 continue; 43 } 44 node t; 45 t.length=0; 46 ms(vis); 47 fo(i,1,15){ 48 if(a[i]){ 49 t.ans[0]=i;t.length=1; 50 int mod=getmod(t,c,n); 51 if(mod==0){ 52 if(i<=9)printf("%lld\n",i); 53 else printf("%c\n",i+'A'-10); 54 f=1; 55 break; 56 } 57 if(!vis[mod])vis[mod]=1,q.push(t); 58 } 59 } 60 while(!q.empty()){ 61 if(f==1)break; 62 t=q.front();q.pop(); 63 fo(i,0,15){ 64 if(a[i]){ 65 t.ans[t.length]=i;t.length++; 66 int mod=getmod(t,c,n); 67 if(mod==0){ 68 fo(i,0,t.length-1){ 69 if(t.ans[i]<=9)printf("%lld",t.ans[i]); 70 else printf("%c",t.ans[i]+'A'-10); 71 } 72 printf("\n"); 73 f=1;break; 74 } 75 else{ 76 if(!vis[mod]&&t.length<500){ 77 vis[mod]=1;q.push(t);} 78 } 79 t.length--; 80 } 81 } 82 } 83 if(f==0) cout<<"give me the bomb please\n"; 84 } 85 return 0; 86 }
HDU1256
模拟
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include<stdint.h> 4 #define int long long 5 #define scan(n) scanf("%lld", &(n)) 6 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 7 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 8 #define prin(n) printf("%lld", (n)) 9 #define pb push_back 10 #define mp make_pair 11 #define ms(a) memset(a, 0, sizeof(a)) 12 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 13 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 14 const int inf = 0x3f3f3f3f; 15 using namespace std; 16 const int maxn = 2e5+100; 17 18 int32_t main() { 19 int T;scan(T); 20 fo(k,1,T){ 21 char c;cin>>c; 22 int h;cin>>h; 23 int x=(h-3)/2; 24 int y=h-3-x; 25 int w=h/6+1; 26 fo(i,1,w)cout<<" "; 27 fo(i,1,y)cout<<c;cout<<endl; 28 fo(i,1,x){ 29 fo(j,1,w)cout<<c; 30 fo(j,1,y)cout<<" "; 31 fo(j,1,w)cout<<c; 32 cout<<endl; 33 } 34 fo(i,1,w)cout<<" "; 35 fo(i,1,y)cout<<c;cout<<endl; 36 fo(i,1,y){ 37 fo(k,1,w)cout<<c; 38 fo(k,1,y)cout<<" "; 39 fo(k,1,w)cout<<c; 40 cout<<endl; 41 } 42 fo(i,1,w)cout<<" "; 43 fo(i,1,y)cout<<c;cout<<endl; 44 if(k!=T)cout<<endl; 45 } 46 return 0; 47 }
HDU1258
dfs+输出路径+记录答案
1 //C:\ZXYACMProblems\HDU 2 #include <bits/stdc++.h> 3 #include<stdint.h> 4 #define int long long 5 #define scan(n) scanf("%lld", &(n)) 6 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 7 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 8 #define prin(n) printf("%lld", (n)) 9 #define pb push_back 10 #define ms(a) memset(a, 0, sizeof(a)) 11 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 12 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 13 const int inf = 0x3f3f3f3f; 14 using namespace std; 15 const int maxn = 2e5+100; 16 int a[maxn]; 17 int n,sum,f; 18 int pre[maxn]; 19 int vis[maxn]; 20 map<string,int>mp; 21 string getnum(int num){ 22 string s=""; 23 while(num){ 24 s+=(char)((num%10)+'0'); 25 num/=10; 26 } 27 string s1=""; 28 int len=s.size(); 29 ro(i,len-1,0)s1+=s[i]; 30 return s1; 31 } 32 bool cmp(int a,int b){return a>b;} 33 void getans(int x){ 34 string res=""; 35 res+=getnum(a[x]); 36 if(pre[x]==0){ 37 if(mp[res]==0)cout<<res<<endl; 38 mp[res]=1; 39 return; 40 } 41 x=pre[x]; 42 while(x!=0){ 43 res=getnum(a[x])+"+"+res; 44 x=pre[x]; 45 } 46 if(mp[res]==0)cout<<res<<endl; 47 mp[res]=1; 48 return; 49 } 50 void dfs(int x,int s){ 51 if(s==sum){ 52 f=1; 53 getans(x); 54 return; 55 } 56 if(x==n)return; 57 fo(i,x+1,n){ 58 if(s+a[i]<=sum) 59 pre[i]=x; 60 dfs(i,s+a[i]); 61 pre[i]=0; 62 } 63 64 } 65 int32_t main() { 66 while(cin>>sum&&sum){ 67 scan(n); 68 fo(i,1,n)scan(a[i]); 69 sort(a+1,a+1+n,cmp); 70 printf("Sums of %lld:\n",sum); 71 fo(i,1,n)pre[i]=0; 72 f=0; 73 dfs(0,0); 74 if(!f)printf("NONE\n"); 75 } 76 return 0; 77 }
HDU1259
1 #include <bits/stdc++.h> 2 #include<stdint.h> 3 #define int long long 4 #define scan(n) scanf("%lld", &(n)) 5 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 6 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 7 #define prin(n) printf("%lld", (n)) 8 #define pb push_back 9 #define mp make_pair 10 #define ms(a) memset(a, 0, sizeof(a)) 11 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 12 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 13 const int inf = 0x3f3f3f3f; 14 using namespace std; 15 const int maxn = 2e5+100; 16 17 int32_t main() { 18 int T;scan(T); 19 while(T--){ 20 string s=" ZJUTACM"; 21 int m;scan(m); 22 fo(i,1,m){ 23 int x,y; 24 scann(x,y); 25 swap(s[x],s[y]); 26 } 27 fo(i,1,7){ 28 if(s[i]=='J'){ 29 cout<<i<<endl; 30 continue; 31 } 32 } 33 } 34 return 0; 35 }
HDU1260
HDU1261
HDU1262
1 #include <bits/stdc++.h> 2 #include<stdint.h> 3 #define int long long 4 #define scan(n) scanf("%lld", &(n)) 5 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 6 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 7 #define prin(n) printf("%lld", (n)) 8 #define pb push_back 9 #define mp make_pair 10 #define ms(a) memset(a, 0, sizeof(a)) 11 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 12 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 13 const int inf = 0x3f3f3f3f; 14 using namespace std; 15 const int maxn = 2e5+100; 16 17 bool isprime(int x){ 18 for(int i=2;i*i<=x;i++){ 19 if(x%i==0)return false; 20 } 21 return true; 22 } 23 int32_t main() { 24 int m; 25 while(cin>>m){ 26 ro(i,m/2,1){ 27 if(isprime(i)&&isprime(m-i)){ 28 cout<<i<<" "<<m-i<<endl; 29 break; 30 } 31 } 32 } 33 return 0; 34 }
HDU1263
HDU1264
HDU1265
HDU1491
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 #include <bits/stdc++.h> 2 #include<stdint.h> 3 #define int long long 4 #define scan(n) scanf("%lld", &(n)) 5 #define scann(n, m) scanf("%lld%lld", &(n), &(m)) 6 #define scannn(a, b, c) scanf("%lld%lld%lld", &(a), &(b), &(c)) 7 #define prin(n) printf("%lld", (n)) 8 #define pb push_back 9 #define mp make_pair 10 #define ms(a) memset(a, 0, sizeof(a)) 11 #define fo(i, a, b) for (int i = (a); i <= (b); i++) 12 #define ro(i, a, b) for (int i = (a); i >= (b); i--) 13 const int inf = 0x3f3f3f3f; 14 using namespace std; 15 const int maxn = 2e5+100; 16 int day[30]={0,31,28,31,30,31,30,31,31,30,31}; 17 18 int32_t main() { 19 int n;scan(n); 20 fo(a,1,n){ 21 int x,y; 22 scann(x,y); 23 int ans=0; 24 if(x==10&&y==21) 25 printf("It's today!!\n"); 26 else if(x>10||(x==10&&y>21)) 27 printf("What a pity, it has passed!\n"); 28 else{ 29 fo(i,x,9) 30 ans+=day[i]; 31 ans+=(21-y); 32 printf("%lld\n",ans); 33 } 34 } 35 return 0; 36 }
HDU1492
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 #include<bits/stdc++.h> 2 #include<stdint.h> 3 using namespace std; 4 #define int long long 5 6 int32_t main(){ 7 int n; 8 while(scanf("%lld",&n)&&n){ 9 int a=0,b=0,c=0,d=0; 10 if(n%2==0)while(n%2==0){n/=2;a++;} 11 if(n%3==0)while(n%3==0){n/=3;b++;} 12 if(n%5==0)while(n%5==0){n/=5;c++;} 13 if(n%7==0)while(n%7==0){n/=7;d++;} 14 int ans=(a+1)*(b+1)*(c+1)*(d+1); 15 printf("%lld\n",ans); 16 } 17 }
HDU1494
HDU1495
1 #include<bits/stdc++.h> 2 using namespace std; 3 int s, n, m; 4 const int N = 100; 5 bool vis[N+1][N+1][N+1]; 6 struct node{ 7 int s, n, m, step; 8 }; 9 int bfs(){ 10 if(s%2==1)return -1; 11 queue<node> q; 12 memset(vis, true, sizeof(vis)); 13 node a; 14 a.s = s; 15 a.n = 0; 16 a.m = 0; 17 a.step = 0; 18 q.push(a); 19 vis[a.s][a.n][a.m] = false; 20 while(!q.empty()){ 21 a = q.front(); 22 q.pop(); 23 if((a.s==a.n&&a.s==s/2)||(a.s==a.m&&a.s==s/2)||(a.m==a.n&&a.m==s/2)) 24 return a.step; 25 node b; 26 //s->n 27 if(a.s&&n-a.n>0){ 28 if(a.s>n-a.n){ 29 b.s = a.s - n + a.n; 30 b.n = n; 31 b.m = a.m; 32 } 33 else{ 34 b.s = 0; 35 b.m = a.m; 36 b.n = a.n + a.s; 37 } 38 if(vis[b.s][b.n][b.m]){ 39 vis[b.s][b.n][b.m] = false; 40 b.step = a.step + 1; 41 q.push(b); 42 } 43 } 44 //s->m 45 if(a.s&&m-a.m>0){ 46 if(a.s>m-a.m){ 47 b.s = a.s - m + a.m; 48 b.m = m; 49 b.n = a.n; 50 } 51 else{ 52 b.s = 0; 53 b.n = a.n; 54 b.m = a.m + a.s; 55 } 56 if(vis[b.s][b.n][b.m]){ 57 vis[b.s][b.n][b.m]=false; 58 b.step = a.step + 1; 59 q.push(b); 60 } 61 } 62 //n->m 63 if(a.n&&m-a.m>0){ 64 if(a.n>m-a.m){ 65 b.n = a.n - m + a.m; 66 b.m = m; 67 b.s = a.s; 68 } 69 else{ 70 b.n = 0; 71 b.s = a.s; 72 b.m = a.m + a.n; 73 } 74 if(vis[b.s][b.n][b.m]){ 75 vis[b.s][b.n][b.m]=false; 76 b.step = a.step + 1; 77 q.push(b); 78 } 79 } 80 //n->s 81 if(a.n&&s-a.s>0){ 82 if(a.n>s-a.s){ 83 b.n = a.n - s + a.s; 84 b.s = s; 85 b.m = a.m; 86 } 87 else{ 88 b.n = 0; 89 b.m = a.m; 90 b.s = a.n + a.s; 91 } 92 if(vis[b.s][b.n][b.m]){ 93 vis[b.s][b.n][b.m] =false; 94 b.step = a.step + 1; 95 q.push(b); 96 } 97 } 98 //m->n 99 if(a.m&&n-a.n>0){ 100 if(a.m>n-a.n){ 101 b.m = a.m - n + a.n; 102 b.n = n; 103 b.s = a.s; 104 } 105 else{ 106 b.m = 0; 107 b.s = a.s; 108 b.n = a.n + a.m; 109 } 110 if(vis[b.s][b.n][b.m]){ 111 vis[b.s][b.n][b.m]=false; 112 b.step = a.step + 1; 113 q.push(b); 114 } 115 } 116 //m->s 117 if(a.m&&s-a.s>0){ 118 if(a.m>s-a.s){ 119 b.m = a.m - s + a.s; 120 b.s = s; 121 b.n = a.n; 122 } 123 else{ 124 b.m = 0; 125 b.n = a.n; 126 b.s = a.m + a.s; 127 } 128 if(vis[b.s][b.n][b.m]){ 129 vis[b.s][b.n][b.m]=false; 130 b.step = a.step + 1; 131 q.push(b); 132 } 133 } 134 } 135 return -1; 136 } 137 138 int main(){ 139 while(scanf("%d%d%d",&s,&n,&m)!=EOF){ 140 if(s==0) 141 break; 142 int ans = bfs(); 143 if(ans<0) 144 printf("NO\n"); 145 else 146 printf("%d\n", ans); 147 } 148 system("pause"); 149 return 0; 150 }
不想写作业了嘤嘤嘤
谁爱写谁写去TUT!!!!!!!